二分法查找

二分法查找

二分法查找原理

使用二分法查找時(shí)需要以下兩個(gè)條件:

沒有重復(fù)元素

已經(jīng)排好順序

假設(shè)給定一組排好序且沒有重復(fù)元素的數(shù)字曾掂,要從這些數(shù)字中快速找到x所在的位置,可以從這組數(shù)字的中間位置開始找俭茧,如果當(dāng)前值與x相等挺物,則查找成功砸彬,如果小于x則從后半段的中間位置繼續(xù)找,如果大于x則從前半段的中間位置繼續(xù)尋找顺囊,直到找到x所在的位置

例如一個(gè)數(shù)組里面的元素有:1,5,8,15,18,23,30

快速找到23對(duì)應(yīng)的下標(biāo)值

第一次:取得數(shù)組的中間位置的值15,15小于23肌索,所以繼續(xù)從后半段開始找,后半段的元素是18,23,30

第二次:取得數(shù)組后半段元素中間位置的值23,23等于23特碳,即找到23對(duì)應(yīng)的下標(biāo)值5

代碼實(shí)現(xiàn)

public class MyArrays{

? ? publicstaticvoidmain(String[] args){

? ? ? ? int[] a = {1,5,8,15,18,23,30};

? ? ? ? int destElement = 23;

? ? ? ? //要求從a數(shù)組中查找23這個(gè)元素的下標(biāo)? ? ? ? int index = binarySearch(a,destElement);

? ? ? ? //如果找到則返回元素的下標(biāo)诚亚,如果找不到統(tǒng)一返回 -1? ? ? ? System.out.println((index==-1)? destElement + "元素不存在!":destElement + "在數(shù)組中的下標(biāo)是:" + index);

? ? }

? ? //二分法查找的核心算法? ? publicstaticintbinarySearch(int[] a,intdestElement){

? ? ? ? int begin = 0;

? ? ? ? int end = a.length-1;

? ? ? ? while(begin <= end){

? ? ? ? ? ? int middle = (begin + end)/2;? ?

? ? ? ? ? ? if(a[middle]==destElement){

? ? ? ? ? ? ? ? return middle;

? ? ? ? ? ? }elseif(a[middle]>destElement){

? ? ? ? ? ? ? ? end = middle - 1;

? ? ? ? ? ? }elseif(a[middle] < destElement){

? ? ? ? ? ? ? ? begin = middle + 1;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return -1;

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末午乓,一起剝皮案震驚了整個(gè)濱河市站宗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌益愈,老刑警劉巖梢灭,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒸其,居然都是意外死亡敏释,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門摸袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钥顽,“玉大人,你說(shuō)我怎么就攤上這事靠汁》浯螅” “怎么了?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蝶怔,是天一觀的道長(zhǎng)奶浦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)踢星,這世上最難降的妖魔是什么澳叉? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上耳高,老公的妹妹穿的比我還像新娘扎瓶。我一直安慰自己所踊,他們只是感情好泌枪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秕岛,像睡著了一般碌燕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上继薛,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天修壕,我揣著相機(jī)與錄音,去河邊找鬼遏考。 笑死慈鸠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的灌具。 我是一名探鬼主播青团,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咖楣!你這毒婦竟也來(lái)了督笆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤诱贿,失蹤者是張志新(化名)和其女友劉穎娃肿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體珠十,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡料扰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了焙蹭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晒杈。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖壳嚎,靈堂內(nèi)的尸體忽然破棺而出桐智,到底是詐尸還是另有隱情,我是刑警寧澤烟馅,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布说庭,位于F島的核電站,受9級(jí)特大地震影響郑趁,放射性物質(zhì)發(fā)生泄漏刊驴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捆憎。 院中可真熱鬧舅柜,春花似錦、人聲如沸躲惰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)础拨。三九已至氮块,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诡宗,已是汗流浹背滔蝉。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留塔沃,地道東北人蝠引。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛀柴,于是被迫代替她去往敵國(guó)和親螃概。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 二分法查找原理 使用二分法查找時(shí)需要以下兩個(gè)條件: 沒有重復(fù)元素 已經(jīng)排好順序 假設(shè)給定一組排好序且沒有重復(fù)元素的...
    eb6a9063c7cd閱讀 388評(píng)論 0 1
  • 1.二分法查找名扛。 思想:假設(shè)數(shù)據(jù)是按升序排序的谅年,對(duì)于給定值 x,從序列的中間位置開始比較肮韧,如果當(dāng)前位置值等于 x融蹂,...
    Themores閱讀 515評(píng)論 0 1
  • Swift的二分法查找實(shí)踐 在這篇教程中我們會(huì)使用計(jì)算機(jī)科學(xué)里一個(gè)基礎(chǔ)的算法:二分法查找binary search...
    不是謝志偉閱讀 1,956評(píng)論 1 5
  • 二分法查找原理 使用二分法查找時(shí)需要以下兩個(gè)條件:沒有重復(fù)元素已經(jīng)排好順序假設(shè)給定一組排好序且沒有重復(fù)元素的數(shù)字,...
    java萌新小白閱讀 167評(píng)論 0 1
  • 二分法查找原理 使用二分法查找時(shí)需要以下兩個(gè)條件: 沒有重復(fù)元素 已經(jīng)排好順序 假設(shè)給定一組排好序且沒有重復(fù)元素的...
    江北執(zhí)_閱讀 353評(píng)論 0 0