順序搜尋
// 順序搜尋
let arr =[5
,4,3
,2,1
]let target =
3function
sequentialsearch
(arr, target)
}return-1
} console.
log(
sequentialsearch
(arr, target)
)//2,成功找到陣列下標
思路:陣列遍歷,將每乙個元素和我們的目標值進行比較找出結果.這種演算法是效率最低的一種演算法.
二分搜尋
前提:一定要排好序再使用
function
binarysearch
(arr, target)
else
if(target < arr[mid]
)else
}return-1
}//演示
let arr =[1
,2,3
,4,5
,6,7
,8,9
,10,11
,23,44
,86];
let target =
10 console.
log(
binarysearch
(arr, target));
//列印下標9
方法2:遞迴寫法
function
binarysearch
(arr, low, high, target)
let mid = math.
floor
((low + high)/2
)if(target > arr[mid]
)else
if(target < arr[mid]
)else
} console.
log(
binarysearch
(arr,
0, arr.length -
1, target)
,"遞迴二分演算法");
//列印9
思路:
二分法查詢是一種在有序陣列中查詢特定元素的搜尋演算法。
查詢過程可以分為以下步驟:
(1)首先,從有序陣列的中間的元素開始搜尋,如果該元素正好是目標元素(即要查詢的元素),則搜尋過程結束,否則進行下一步。
(2)如果目標元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半區域查詢,然後重複第一步的操作。
(3)如果某一步陣列為空,則表示找不到目標元素。
前端中的演算法1 二分查詢
如果覺得前端就是畫頁面 那麼文章就不用看了 現在的崗位而言 對應前端的要求越來越高 質量也越高 效能要求也越高 先來乙個入門基本的演算法 二分查詢 所謂的演算法都不是直接使用關鍵字indexof findincludes之類的 都是原生迴圈來實現 二分 就是一拆為2 比如乙個集合 let list ...
查詢演算法 折半查詢演算法
折半查詢演算法 binary search param a 乙個有序的集合 本次為由小到大 param x 需要查詢的值 ps 首先使用折半演算法的時候 集合必須是有序的 eg a 1,3,5,7,9 x 3 a mid low height 1,3,5,7,9 2 0 1 1,3 0 1 1 3 ...
前端排序演算法
按從左到右的順序,從下標為1的數開始與前乙個進行比較,小則往前移,大則退出迴圈。let array 1 9,3 5,2 3,5 7,2 function arrayinsert array else return array 輸出 let array1 arrayinsert array for l...