<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術要點  >  千鋒長沙前端培訓分享之大前端算法入門之二分查找

    千鋒長沙前端培訓分享之大前端算法入門之二分查找

    來源:千鋒教育
    發布人:千鋒長沙
    時間: 2022-01-04 16:26:03

           現如今面試大廠的前端崗位對于應聘者的算法技巧要求越來越高,現在的前端已經不僅僅是制作頁面就能夠交差的,所以掌握算法技巧是很重要的,下面千鋒長沙前端培訓就來給大家介紹一個二分查找算法。

    src=http___images.edutt.com_plan_202010_12_160248653074638.png&refer=http___images.edutt

    所謂的算法都不是直接使用關鍵字indexOf fifindIncludes之類的, 都是原生循環來實現

    二分 就是一拆為2 比如一個集合

    let list = [1,2,3,4,5,6,7]

    二分就是在中間拆開變成兩個數組

    list1=[1,2,3,4]

    list2 =[5,6,7]

    二分用在哪些地方 主要有有序數組的查找

    但是說 list= [1.....10] 可能肉眼就知道

    但是如果list = [1000,20000] 要找查找某個數位置 就觀察不出來了

    更甚至 list = 一千人的電話號碼 要查找某一個

    二分不是絕對的性能優秀 所有的優秀的 都是對比的 現在有一個集合放1到10 要找9的的位置

    普通的循環要找9次 二分找幾次呢

    let list = [1,2,3,4,5,6,7,8,9,10]

    第一次中間數 5,6都可以 目標數9

    假設:

    middle =5

    target=9

    9>5 下次查找的區間 就用二分的后者 [5,6,7,8,9,10]

    接著

    middle = 7

    target = 9

    9>7 下次查找的區間 就繼續二分為 [7,8,9,10]

    繼續

    middle=8

    target=9

    9>8 下次查找的區間 [8,9,10]

    繼續

    middle = 9

    target= 9

    這樣就找到9的位置

    都是折疊查找 查找的次數比較穩定長度為8的集合 最多3次 就能找到數

    log 8=2

    就是

    同理 16個數 最多需要幾次 2 ? = 16 結果是4 最多查找四次

    log16= 4

    var list = [1,2,3,4,5,6,7,8,9,10];

    function search(list,item){

    count =1;//計數出現的次數

    start = 0;

    end = list.length-1;

    while(start<=end){

    middle =Math.floor((start+end)/2); //取中間下標

    console.log(middle);

    guess = list[middle];

    if(guess==item){

    return middle; //返回位置

    }

    if(guess>item){

    end = middle;

    }else{

    start = middle+1

    }

    count++;

    }

    return "查不到";

    }

    let result = search(list,4);

    不管開頭還是結尾 還是中間 都穩定在 4次之前解決戰斗

    同理 100個數 找一個數 最多7次 40億個數 找32次

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    最新文章NEW

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>