亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript折半查找(二分查找)算法原理與實現方法示例

2019-11-19 13:20:16
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript折半查找(二分查找)算法原理與實現方法。分享給大家供大家參考,具體如下:

一、問題描述:

在一個升序數組中,使用折半查找得到要查詢的值的索引位置。如:

var a=[1,2,3,4,5,6,7,8,9];search(a,3);//返回2search(a,1);//左邊界,返回0search(a,9);//右邊界,返回8search(a,0);//比最小的值還小,返回"您查找的數值不存在"search(a,10);//比最大的值還大,返回"您查找的數值不存在"

注:折半查找必須在有序數組中才有效,無序的數組不能實現查找功能。比如:在[10,5,6,7,8,9,20]中查找10,中間索引位置的值為7,比較得出7比10小,因而應該在右子數組中查找,實際上不可能找到10;

二、我的實現

function search(arr,num) {  var l=arr.length;  var left=0;  var right=l-1;  var center=Math.floor((left+right)/2);  while(left<=l-1&&right>=0){    if (arr[center]==num) return center;    if (left==right) return "您查找的數不存在";    if (arr[center]>num) {      right=center-1;      center=Math.floor((left+right)/2);    }else if (arr[center]<num) {      left=center+1;      center=Math.floor((left+right)/2);    }  }}var a=[1,2,3,4,5,6,7,8,9];console.log(search(a,-2));

說明:

1、基本思路:

每次比較,如果數組中間索引位置的值比要查找的值大,就轉而在數組中間位置之前的子數組中查找;相反,如果數組中間索引位置的值比要查找的值大,就轉而在數組中間位置之后的子數組中查找;如果數組中間索引位置的值恰好等于要查找的值,就返回該索引位置。

2、left定義查找范圍的起始位置,right定義查找范圍的結束位置,center定義查找范圍的中間位置。

3、while中的邏輯說明:

(1)由于不知道具體查找查找多少次,while是比較好的選擇;

(2)循環結束條件:

a、一旦當right小于0時,就不再查找,再糾纏也不會有結果。例如:在a=[1,2,3,4,5,6,7,8,9]中查找0,當查找范圍變為left=0,right=0,center=0時,進入while語句,由于arr[center]>0,故執行

right=center-1;center=Math.floor((left+right)/2);

得到right=-1此時應不再進入循環;

b、一旦當left>l-1時,就不再查找,同樣再糾纏也不會有結果。例如:在a=[1,2,3,4,5,6,7,8,9]中查找10,當查找范圍變為left=8,right=8,center=8時,進入while語句,由于arr[center]<10,故執行

left=center;center=Math.floor((left+right)/2);

得到left=9,此時應不再進入循環;

4、始終是通過center匹配到要查找的值;

5、Math.floor處理了查找范圍長度為偶數的情況;

6、當left==right了,而arr[center]==num卻沒執行,可以得出結論查找不到的;

7、當arr[center]==num時,整個函數都結束了,后面語句是不會執行的。

上述代碼使用在線HTML/CSS/JavaScript代碼運行工具http://tools.VeVB.COm/code/HtmlJsRun測試運行結果如下:

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript數組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影在线免费观看网站| 欧美激情视频一区二区三区不卡| 日韩在线视频免费观看| 国产日韩精品在线播放| 成人性生交大片免费看小说| 91日本视频在线| 欧美另类极品videosbestfree| 欧美成人免费小视频| 8050国产精品久久久久久| 久久久亚洲国产天美传媒修理工| 亚洲精品国产精品国自产在线| 欧洲s码亚洲m码精品一区| 日韩精品欧美激情| 亚洲成人黄色网址| 亚洲欧美国内爽妇网| 国产欧美一区二区三区在线看| 亚洲在线视频福利| 欧美精品一区三区| 隔壁老王国产在线精品| 国产一区二区三区三区在线观看| 久久久久久999| 日韩精品在线观看一区二区| 欧美福利视频在线| 成人午夜两性视频| 欧美性20hd另类| 国产精品成人观看视频国产奇米| 欧美高清视频在线观看| 日韩一区二区三区国产| 久久夜色撩人精品| 精品成人av一区| 亚洲色图美腿丝袜| 高清日韩电视剧大全免费播放在线观看| 2019中文字幕在线免费观看| 欧美专区中文字幕| 尤物精品国产第一福利三区| 亚洲区一区二区| 欧美激情视频三区| 欧美在线亚洲在线| 国产成人精品视频| 91久久中文字幕| 精品爽片免费看久久| 欧美日韩人人澡狠狠躁视频| 亚洲bt欧美bt日本bt| 这里只有精品久久| 亚洲综合中文字幕在线| 欧美中文在线观看国产| 成人妇女免费播放久久久| 欧美俄罗斯性视频| 亚洲永久在线观看| 亚洲精品网址在线观看| www亚洲欧美| 亚洲国产精品va在线看黑人动漫| 精品国产福利视频| 亚洲国产精品人人爽夜夜爽| 欧美精品18videos性欧| 久久久精品在线观看| 91沈先生作品| 欧美激情精品久久久久久久变态| 性欧美长视频免费观看不卡| 亚洲a在线观看| 7777kkkk成人观看| 国产亚洲欧洲在线| 国产精品爽爽爽爽爽爽在线观看| 亚洲国产成人精品女人久久久| 亚洲一区av在线播放| 欧美精品videossex性护士| 欧美国产亚洲精品久久久8v| 国产午夜精品全部视频在线播放| 欧美在线观看网址综合| 成人h猎奇视频网站| 亚洲成色999久久网站| 26uuu亚洲伊人春色| 在线精品高清中文字幕| 日韩欧美在线免费| 久久久久久有精品国产| 亚洲国产美女久久久久| 国产精品自产拍在线观看中文| 国产91在线播放精品91| 91久久久久久久久久久| 久久精品视频中文字幕| 久久久精品国产| 久久久精品欧美| 最近2019免费中文字幕视频三| 亚洲国产婷婷香蕉久久久久久| 欧美视频一二三| 亚洲第一精品电影| 国产一区二区激情| 国产成人精品在线视频| 91在线观看免费网站| 92福利视频午夜1000合集在线观看| 国产一区二区三区日韩欧美| 亚洲va欧美va国产综合久久| 亚洲精品色婷婷福利天堂| 精品久久在线播放| 成人97在线观看视频| 国产美女精品免费电影| 中文字幕欧美视频在线| 久久久久久高潮国产精品视| 日韩a**中文字幕| 国产精品极品美女在线观看免费| 亚洲精品中文字幕有码专区| 国产一区二区三区在线观看视频| 一区二区三区无码高清视频| 91久久精品美女| 亚洲bt欧美bt日本bt| 亚洲毛片在线看| 日韩网站在线观看| 久久91精品国产91久久跳| 91精品国产综合久久香蕉最新版| 久久99热这里只有精品国产| 日韩女在线观看| 最近免费中文字幕视频2019| 国产日产久久高清欧美一区| 草民午夜欧美限制a级福利片| 亚洲а∨天堂久久精品喷水| 亚洲一品av免费观看| 国产精品一区专区欧美日韩| 日韩一区二区精品视频| 久久久久久久国产精品视频| 国产综合久久久久| 亚洲国产精品大全| 欧美一区二区三区免费观看| 欧美黄色小视频| 精品国产一区二区三区在线观看| 亚洲第一中文字幕| 中文字幕欧美视频在线| 国产精品美女午夜av| 九九热精品视频国产| 欧美美女15p| 欧美一级黑人aaaaaaa做受| 国产精自产拍久久久久久蜜| 精品在线小视频| 久久免费精品日本久久中文字幕| 欧美性猛交xxxx乱大交极品| 欧美做受高潮1| 91精品视频一区| 亚洲免费小视频| 中文字幕日韩精品在线观看| 国产精品电影网| x99av成人免费| 欧美性极品少妇精品网站| 亚洲人成电影网站色www| 亚洲国产欧美在线成人app| 久久人人爽国产| 97人人模人人爽人人喊中文字| 国产成人在线亚洲欧美| 亚洲精品国产精品自产a区红杏吧| 欧美肥老妇视频| 性欧美xxxx视频在线观看| 综合激情国产一区| 久久久久久综合网天天| 亚洲电影在线观看| 狠狠躁18三区二区一区| 中文字幕亚洲欧美| 中文字幕精品www乱入免费视频| 亚洲xxx大片| 姬川优奈aav一区二区| 亚洲精品国产精品国自产在线| 日韩欧美在线国产| 日韩成人小视频| 一本一本久久a久久精品综合小说| 欧美激情中文字幕乱码免费| 亚洲人成在线免费观看| 国产精品日韩欧美大师|