生活随笔
收集整理的這篇文章主要介紹了
简单的搜索方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.順序搜索
順序或線性搜索是最基本的搜索算法。它的機制是,將每一個數據結構中的元素和我們要找 的元素做比較。順序搜索是最低效的一種搜索算法。
function search(arr,item) {for(var i =0; i < arr.length; i++){if(arr[i] == item){return i}}return -1}
2.二分搜索
二分搜索算法的原理和猜數字游戲類似,就是那個有人說“我正想著一個1到100的數字”的 游戲。我們每回應一個數字,那個人就會說這個數字是高了、低了還是對了。
這個算法要求被搜索的數據結構已排序。(最好從小到大)
選擇數組的中間值如果選中值是待搜索值,那么算法執行完畢(值找到了)。如果待搜索值比選中值要小,則返回步驟1并在選中值左邊的子數組中尋找。如果待搜索值比選中值要大,則返回步驟1并在選種值右邊的子數組中尋找。
class TwoSearch {constructor(arr,item) {this.low = 0;this.high = arr.length -1;this.mid = null;this.item = item;this.element = null;this.arr = arr;}binarySearch () {while(this.low <= this.high){this.mid = Math.floor((this.low + this.high) / 2 )this.element = this.arr[this.mid] //中間值if(this.element < this.item){// 中間值小于搜索值那就要去右邊的子數組中查找,重新計算中間值this.low = this.mid + 1}else if(this.element > this.item){中間值大于搜索值那就要去左邊的子數組中查找,重新計算中間值this.high = this.mid - 1}else{return this.mid}}return false}}let two = new TwoSearch([1,2,3,4,5],5)console.log(two.binarySearch()) // 4 (下標)
總結
以上是生活随笔為你收集整理的简单的搜索方法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。