国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Soarkey / 554人閱讀

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

寫在最前面

導師貪腐出逃美國,兩年未歸,可憐了我。拿了小米和美團的offer,要被延期,offer失效,工作重新找。把準備過程紀錄下來,共勉。

線性查找
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)、對數查找(英語:logarithmic search),是一種在有序數組中查找某一特定元素的搜索算法。 搜索過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜索過程結束;如果某一特定元素大于或者小于中間元素,則在數組大于或小于中間元素的 那一半中查找,而且跟開始一樣從中間元素開始比較。如果在某一步驟數組為空,則代表找不到。這種搜索算法每一次比較都使搜索范圍縮小一半。 - from 維基百科

二分法首先考察中間元素a[mid],如果該值是我們要找的值,那好極了,直接找到了;如果不是的話,由于我們已經知道數組是排好序的(二分法要求待查找的數組是有序的,本例假設是升序的,降序其實是一樣的),那就看目標值target和a[mid]的關系是怎樣的:如果a[mid] > target則說明目標值target如果存在的話一定在a[mid]的左側,因為左側都比a[mid]小;如果a[mid] < target則說明目標值如果存在的話一定在a[mid]的右側,因為右側都比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;
    }

本節參考 http://www.jianshu.com/p/b07c...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70151.html

相關文章

  • 貼一貼我的后端開發面試

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

    Batkid 評論0 收藏0
  • Android-Java面試

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

    TalkingData 評論0 收藏0
  • 求職準備 - 收藏集 - 掘金

    摘要:一基礎接口的意義百度規范擴展回調抽象類的意義想不想通過一線互聯網公司面試文檔整理為電子書掘金簡介谷歌求職記我花了八個月準備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對象深入分析 Java 中實例變量和類變量的區別 - 掘金原創文章,轉載請務必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問我的站點,閱讀更多有深度的文章。 實例變量 和 類變量...

    cuieney 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<