JS資料結構與演算法 - 查詢(順序、二分)
阿新 • • 發佈:2020-07-13
時間複雜度
順序查詢(O(n)
字面意思,程式碼略
⭐二分查詢(O(nlogn)
這個演算法要求被搜尋的資料結構已排序。以下是該演算法遵循的步驟。
(1) 選擇陣列的中間值。
(2) 如果選中值是待搜尋值,那麼演算法執行完畢(值找到了)。
(3) 如果待搜尋值比選中值要小,則返回步驟1並在選中值左邊的子陣列中尋找。
(4) 如果待搜尋值比選中值要大,則返回步驟1並在選種值右邊的子陣列中尋找。
function Search() { this.binarySearch = function (item) { //this.quickSort(); //排序程式碼 var low = 0, high = array.length - 1, mid, element; while (low <= high) { mid = Math.floor((low + high) / 2); element = array[mid]; if (element < item) { low = mid + 1; } else if (element > item) { high = mid - 1; } else { return mid; } } return -1; }; }