成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

我的面試準(zhǔn)備過程--查找算法(更新中)

Soarkey / 564人閱讀

摘要:把準(zhǔn)備過程紀(jì)錄下來,共勉。線性查找二分查找二分查找英語,也稱折半查找英語對(duì)數(shù)查找英語,是一種在有序數(shù)組中查找某一特定元素的搜索算法。

寫在最前面

導(dǎo)師貪腐出逃美國(guó),兩年未歸,可憐了我。拿了小米和美團(tuán)的offer,要被延期,offer失效,工作重新找。把準(zhǔn)備過程紀(jì)錄下來,共勉。

線性查找
public static int search(int[] data, int target) {
    for(int i = 0; i < data.length; i++){
        if(data[i] == target){
            return i;
        }
    }
    return -1;
}
二分查找

二分查找(英語:binary search),也稱折半查找(英語:half-interval search)、對(duì)數(shù)查找(英語:logarithmic search),是一種在有序數(shù)組中查找某一特定元素的搜索算法。 搜索過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結(jié)束;如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的 那一半中查找,而且跟開始一樣從中間元素開始比較。如果在某一步驟數(shù)組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。 - from 維基百科

二分法首先考察中間元素a[mid],如果該值是我們要找的值,那好極了,直接找到了;如果不是的話,由于我們已經(jīng)知道數(shù)組是排好序的(二分法要求待查找的數(shù)組是有序的,本例假設(shè)是升序的,降序其實(shí)是一樣的),那就看目標(biāo)值target和a[mid]的關(guān)系是怎樣的:如果a[mid] > target則說明目標(biāo)值target如果存在的話一定在a[mid]的左側(cè),因?yàn)樽髠?cè)都比a[mid]?。蝗绻鸻[mid] < target則說明目標(biāo)值如果存在的話一定在a[mid]的右側(cè),因?yàn)橛覀?cè)都比a[mid]大。

遞歸法

    public static int binarySearch1(int[] data, int low, int high, int target) {
        int mid = (low + high) / 2;
        if(low <= high){
            if(target < data[mid]){
                binarySearch1(data, low, mid - 1, target);
            }else if(target > data[mid]){
                binarySearch1(data, mid + 1, high, target);
            }else{
                return mid;
            }
        }
        return -1;
    }

迭代

    public static int binarySearch2(int[] data, int low, int high, int target){
        int mid = (low + high) / 2;
        while(low <= high){
            if(target < data[mid]){
                high = mid - 1;
            }else if(target > data[mid]){
                low = mid + 1;
            }else{
                return mid;
            }
        }
        return -1;
    }

本節(jié)參考 http://www.jianshu.com/p/b07c...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70151.html

相關(guān)文章

  • 貼一貼我的后端開發(fā)面試

    摘要:線程有幾種狀態(tài)生命周期是怎樣的線程有五種狀態(tài)創(chuàng)建就緒運(yùn)行阻塞死亡。當(dāng)線程獲得到等待的資源資源或者引起阻塞的條件得到滿足時(shí)調(diào)用或,會(huì)從阻塞狀態(tài)進(jìn)入就緒狀態(tài)。使用,允許最多個(gè)線程同時(shí)訪問資源。 轉(zhuǎn)載請(qǐng)注明出處: 貼一貼我的后端開發(fā)面試題。 本文是面試回寢室后憑記憶羅列出來的問題,大概90%的問題都在這里面了,有幾個(gè)問題的實(shí)在是想不起來了= =,有些問題自我感覺回答的不好,所以我是查了資料...

    Batkid 評(píng)論0 收藏0
  • Android-Java面試

    摘要:好不容易在月號(hào)這天中午點(diǎn)左右接到了來自阿里的面試電話。這里會(huì)不斷收集和更新基礎(chǔ)相關(guān)的面試題,目前已收集題。面試重難點(diǎn)的和的打包過程多線程機(jī)制機(jī)制系統(tǒng)啟動(dòng)過程,啟動(dòng)過程等等掃清面試障礙最新面試經(jīng)驗(yàn)分享,此為第一篇,開篇。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 各大公司 Java 后端開發(fā)面試題總結(jié) 各大公司 Jav...

    TalkingData 評(píng)論0 收藏0
  • 求職準(zhǔn)備 - 收藏集 - 掘金

    摘要:一基礎(chǔ)接口的意義百度規(guī)范擴(kuò)展回調(diào)抽象類的意義想不想通過一線互聯(lián)網(wǎng)公司面試文檔整理為電子書掘金簡(jiǎn)介谷歌求職記我花了八個(gè)月準(zhǔn)備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對(duì)象深入分析 Java 中實(shí)例變量和類變量的區(qū)別 - 掘金原創(chuàng)文章,轉(zhuǎn)載請(qǐng)務(wù)必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問我的站點(diǎn),閱讀更多有深度的文章。 實(shí)例變量 和 類變量...

    cuieney 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<