摘要:請?zhí)畛浯a,使能使傳入的參數(shù)按照從小到大的順序顯示出來。冒泡排序從小到大排序從大到小排序快速排序插入排序二分查找遞歸方法二分查找非遞歸方法
請?zhí)畛浯a,使mySort()能使傳入的參數(shù)按照從小到大的順序顯示出來。
function mySort() { var tags = new Array(); for (var i = 0; i < arguments.length; i++) { tags.push(arguments[i]); } tags.sort(function sortNum(a, b) { return a - b; }); return tags; } var result = mySort(50, 11, 16, 32, 24, 99, 57, 100); console.info(result);
冒泡排序
function bubbleSort(arr) { for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr.length - i; j++) { var temp = 0; // ">" 從小到大排序 // "<" 從大到小排序 if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; }
快速排序
function quickSort(elements) { if (elements.length <= 1) { return elements; } var pivotIndex = Math.floor(elements.length / 2); var pivot = elements.splice(pivotIndex, 1)[0]; var left = []; var right = []; for (var i = 0; i < elements.length; i++) { if (elements[i] < pivot) { left.push(elements[i]); } else { right.push(elements[i]); } } return quickSort(left).concat([pivot], quickSort(right)); }
插入排序
insertSort = function (elements) { var i = 1, j, step, key, len = elements.length; for (; i < len; i++) { step = j = i; key = elements[j]; while (--j > -1) { if (elements[j] > key) { elements[j + 1] = elements[j]; } else { break; } } elements[j + 1] = key; } return elements; };
二分查找-遞歸方法
function binarySearch(arr, key, leftIndex, rightIndex) { if (leftIndex > rightIndex) { return -1; } var mid = parseInt((leftIndex + rightIndex) / 2); if (arr[mid] == key) { return mid; } else if (arr[mid] > key) { rightIndex = mid - 1; return binarySearch(arr, key, leftIndex, rightIndex); } else if (arr[mid] < key) { leftIndex = mid + 1; return binarySearch(arr, key, leftIndex, rightIndex); } }
二分查找-非遞歸方法
function binarySearch(arr, key) { var leftIndex = 0, rightIndex = arr.length - 1; while (leftIndex <= rightIndex) { var mid = parseInt((leftIndex + rightIndex) / 2); if (arr[mid] == key) { return mid; } else if (arr[mid] < key) { leftIndex = mid + 1; } else if (arr[mid] > key) { rightIndex = mid - 1; } else { return -1; } } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/88227.html
摘要:為檢查長度為的列表,二分查找需要執(zhí)行次操作。最后需要指出的一點是高水平的讀者可研究一下二叉樹關(guān)于二叉樹,戳這里數(shù)據(jù)結(jié)構(gòu)與算法二叉樹算法常見練習在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 常見數(shù)據(jù)結(jié)構(gòu) 簡單數(shù)據(jù)結(jié)構(gòu)(必須理解和掌握) 有序數(shù)據(jù)結(jié)構(gòu):棧、隊列、鏈表。有序數(shù)據(jù)結(jié)構(gòu)省空間(儲存空間小) 無序數(shù)據(jù)結(jié)構(gòu):集合、字典、散列表,無序...
摘要:為檢查長度為的列表,二分查找需要執(zhí)行次操作。最后需要指出的一點是高水平的讀者可研究一下二叉樹關(guān)于二叉樹,戳這里數(shù)據(jù)結(jié)構(gòu)與算法二叉樹算法常見練習在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 常見數(shù)據(jù)結(jié)構(gòu) 簡單數(shù)據(jù)結(jié)構(gòu)(必須理解和掌握) 有序數(shù)據(jù)結(jié)構(gòu):棧、隊列、鏈表。有序數(shù)據(jù)結(jié)構(gòu)省空間(儲存空間小) 無序數(shù)據(jù)結(jié)構(gòu):集合、字典、散列表,無序...
摘要:為檢查長度為的列表,二分查找需要執(zhí)行次操作。最后需要指出的一點是高水平的讀者可研究一下二叉樹關(guān)于二叉樹,戳這里數(shù)據(jù)結(jié)構(gòu)與算法二叉樹算法常見練習在一個二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 常見數(shù)據(jù)結(jié)構(gòu) 簡單數(shù)據(jù)結(jié)構(gòu)(必須理解和掌握) 有序數(shù)據(jù)結(jié)構(gòu):棧、隊列、鏈表。有序數(shù)據(jù)結(jié)構(gòu)省空間(儲存空間?。?無序數(shù)據(jù)結(jié)構(gòu):集合、字典、散列表,無序...
摘要:通過兩個二分查找的條件繼續(xù)進行問題的分析,那么問題又來了,二分查找是快速的查找一個數(shù)據(jù)是否存在一組數(shù)據(jù)中,而且效率極高,億查找一個數(shù)據(jù)只需次查找。二分查找的三點重點循環(huán)退出條件注意是而不是。 showImg(https://segmentfault.com/img/remote/1460000018761246);這篇文章主要深入數(shù)據(jù)結(jié)構(gòu)與算法在解決實際問題怎么運用和分析的,對于 IP...
摘要:所以,二分查找較適用于一次排序,多次查找的數(shù)據(jù)。面對大量的數(shù)據(jù),二分查找方能體現(xiàn)其優(yōu)勢。 1. 二分查找的思想 二分查找是一種使用十分普遍的查找算法,其基本的思路也非常的簡單,在一個有序的數(shù)據(jù)集合中,我們想要查找某個數(shù)據(jù),直接取最中間的那個數(shù)據(jù),將它和要找的數(shù)據(jù)進行比較,如果較大,則在更大的那個數(shù)值區(qū)間繼續(xù)取中間值查找,反之亦然。 例如我們要在一個有序的集合里[1,3,5,6,7,8,...
摘要:我們現(xiàn)在來看二分搜索算法的兩種變形插值搜索和指數(shù)搜索。插值搜索是對二分搜索算法的改進,插值搜索可以基于搜索的值選擇到達不同的位置。 預(yù)警 在本篇文章中,將為各位老鐵介紹不同的搜索算法以及它們的復(fù)雜度。因為力求通俗易懂,所以篇幅可能較長,大伙可以先Mark下來,每天抽時間看一點理解一點。本文配套的Github Repo,歡迎各位老鐵star,會一直更新的。 開篇 和排序類似,搜索或者叫做...
閱讀 3947·2021-11-16 11:44
閱讀 3128·2021-11-12 10:36
閱讀 3384·2021-10-08 10:04
閱讀 1270·2021-09-03 10:29
閱讀 409·2019-08-30 13:50
閱讀 2623·2019-08-29 17:14
閱讀 1745·2019-08-29 15:32
閱讀 1090·2019-08-29 11:27