JavaSE 第三十六講 Java數(shù)組查找方式及二分查找剖析 10.26

1、數(shù)組查找

public class ArraySearchTest
{
    public static int search(int[] array, int value)
    {
        for(int i = 0; i < array.length; i++)
        {
            if(value == array[i])
            {
                return i;
            }
        }

        return -1;
    }

    public static void main(String[] args)
    {
        int[] a = new int[]{1, 3, 5, 6, 7, 8, 10, 12, 15, 16, 19, 22, 23, 25}; 
        int value = 16;

        int index = search(a, value);

        System.out.println(index);

    }
}

2遏佣、二分查找

public class BinarySearch
{
    public static int search(int[] array, int value)
    {
        int low = 0;
        int high = array.length - 1;
        int middle;
    
        while(low <= high)
        {
            middle = (low + high) / 2;

            if(array[middle] == value)
            {
                return middle;
            }   

            if(value < array[middle])
            {
                high = middle - 1;
            }

            if(value > array[middle])
            {
                low = middle + 1;
            }
        
        }

        return -1;
    }

    public static void main(String[] args)
    {
        int[] a = new int[]{1, 3, 5, 6, 7, 8, 10, 12, 15, 16, 19, 22, 23, 25};

        int index = search(a, 15);

        System.out.println(index);
    }   
}
public class BinarySearch
{
    public static int search(int[] array, int value)
    {
        int low = 0;
        int high = array.length - 1;
        int middle;
    
        while(low <= high)
        {
            middle = (low + high) / 2;

            for(int i = 0; i < array.length; i++)
            {
                System.out.print(array[i]);

                if(i == middle)
                {
                    System.out.print("#");
                }   

                System.out.print(" ");
            }
                
            System.out.println();       

            if(array[middle] == value)
            {
                return middle;
            }   

            if(value < array[middle])
            {
                high = middle - 1;
            }

            if(value > array[middle])
            {
                low = middle + 1;
            }
        
        }

        return -1;
    }

    public static void main(String[] args)
    {
        int[] a = new int[]{1, 3, 5, 6, 7, 8, 10, 12, 15, 16, 19, 22, 23, 25};

        int index = search(a, 15);

        System.out.println(index);
        //C:\>java BinarySearch
        //1 3 5 6 7 8 10# 12 15 16 19 22 23 25
        //1 3 5 6 7 8 10 12 15 16 19# 22 23 25
        //1 3 5 6 7 8 10 12 15# 16 19 22 23 25
        //8
    }   
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贯要,一起剝皮案震驚了整個(gè)濱河市霹菊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌提前,老刑警劉巖吗货,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狈网,居然都是意外死亡宙搬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門拓哺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)勇垛,“玉大人,你說(shuō)我怎么就攤上這事士鸥∠泄拢” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵烤礁,是天一觀的道長(zhǎng)讼积。 經(jīng)常有香客問(wèn)我,道長(zhǎng)脚仔,這世上最難降的妖魔是什么勤众? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮鲤脏,結(jié)果婚禮上们颜,老公的妹妹穿的比我還像新娘吕朵。我一直安慰自己,他們只是感情好窥突,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布努溃。 她就那樣靜靜地躺著,像睡著了一般波岛。 火紅的嫁衣襯著肌膚如雪茅坛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天则拷,我揣著相機(jī)與錄音,去河邊找鬼曹鸠。 笑死煌茬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的彻桃。 我是一名探鬼主播坛善,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邻眷!你這毒婦竟也來(lái)了眠屎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤肆饶,失蹤者是張志新(化名)和其女友劉穎改衩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驯镊,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葫督,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了板惑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橄镜。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冯乘,靈堂內(nèi)的尸體忽然破棺而出洽胶,到底是詐尸還是另有隱情,我是刑警寧澤裆馒,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布姊氓,位于F島的核電站,受9級(jí)特大地震影響领追,放射性物質(zhì)發(fā)生泄漏他膳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一绒窑、第九天 我趴在偏房一處隱蔽的房頂上張望棕孙。 院中可真熱鬧,春花似錦、人聲如沸蟀俊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肢预。三九已至矛洞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烫映,已是汗流浹背沼本。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锭沟,地道東北人抽兆。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像族淮,于是被迫代替她去往敵國(guó)和親辫红。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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

  • Swift的二分法查找實(shí)踐 在這篇教程中我們會(huì)使用計(jì)算機(jī)科學(xué)里一個(gè)基礎(chǔ)的算法:二分法查找binary search...
    不是謝志偉閱讀 1,946評(píng)論 1 5
  • 原文出處:http://www.cnblogs.com/maybe2030/p/4715035.html引文出處:...
    明教de教主閱讀 9,122評(píng)論 0 7
  • 1 前言 二分查找本身是個(gè)簡(jiǎn)單的算法祝辣,但是正是因?yàn)槠浜?jiǎn)單贴妻,更容易寫錯(cuò)。甚至于在二分查找算法剛出現(xiàn)的時(shí)候蝙斜,也是存在b...
    __七把刀__閱讀 1,373評(píng)論 0 1
  • 今天看見了一件事特生氣名惩,大家能夠猜出什么事情嗎?在地鐵上一個(gè)7個(gè)月大的孕婦上來(lái)了但是沒(méi)有座位了她看了一下四周乍炉,一位...
    云云靖柔天使閱讀 365評(píng)論 0 0
  • 走了 一個(gè) 兩個(gè) … 三個(gè) … 四個(gè) 五個(gè) … 還剩 四個(gè) 三個(gè) … 兩個(gè) 沒(méi)了 … 開始與結(jié)束 終究是 匯合了
    孫小面閱讀 278評(píng)論 0 0