日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单的搜索方法

發布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单的搜索方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 (下標)

    總結

    以上是生活随笔為你收集整理的简单的搜索方法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。