《Algorithms Unlocked》是 《算法導(dǎo)論》的合著者之一 Thomas H. Cormen 寫的一本算法基礎(chǔ),算是啃CLRS前的開胃菜和輔助教材。如果CLRS的厚度讓人望而生畏,這本200多頁的小讀本剛好合適帶你入門。

書中沒有涉及編程語言,直接用文字描述算法,我用 JavaScript 對書中的算法進行描述。

二分查找

在排好序的數(shù)組中查找目標值x。在p到r區(qū)間中,總是取索引為q的中間值與x進行比較,如果array[q]大于x,則比較p到q-1區(qū)間,否則比較q+1到r區(qū)間,直到array[q]等于x或p>r。

// 利用二分法在已經(jīng)排好序的數(shù)組中查找值xfunction binarySearch(array, x) {
  let p = 1;
  let r = array.length - 1;

  while (p <= r) {
    let q = Math.round((p + r) / 2);  //四舍五入取整

    if (array[q] === x) {
      return q;
    } else {
      if (array[q] > x) {
        // 如果q沒有減一,遇到找不到x的情況,
        // 就會陷入while循環(huán)中出不來,因為p會一直等于r
        r = q - 1; 
      } else {
        p = q + 1;
      }
    }
  }

  return 'NOT-FOUND';}

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負責任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式