欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS二分查找算法詳解

 更新時間:2017年11月01日 10:21:56   作者:模糊的星空  
這篇文章主要為大家詳細介紹了JS二分查找算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

二分法查找,也稱折半查找,是一種在有序數(shù)組中查找特定元素的搜索算法。查找過程可以分為以下步驟:

(1)首先,從有序數(shù)組的中間的元素開始搜索,如果該元素正好是目標元素(即要查找的元素),則搜索過程結(jié)束,否則進行下一步。
(2)如果目標元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半?yún)^(qū)域查找,然后重復(fù)第一步的操作。
(3)如果某一步數(shù)組為空,則表示找不到目標元素。

參考代碼:

 // 非遞歸算法
  function binary_search(arr, key) {
   var low = 0,
    high = arr.length - 1;
   while(low <= high){
    var mid = parseInt((high + low) / 2);
    if(key == arr[mid]){
     return mid;
    }else if(key > arr[mid]){
     low = mid + 1;
    }else if(key < arr[mid]){
     high = mid -1;
    }else{
     return -1;
    }
   }
  };
  var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];
  var result = binary_search(arr,10);
  alert(result); // 9 返回目標元素的索引值  

 // 遞歸算法
  function binary_search(arr,low, high, key) {
   if (low > high){
    return -1;
   }
   var mid = parseInt((high + low) / 2);
   if(arr[mid] == key){
    return mid;
   }else if (arr[mid] > key){
    high = mid - 1;
    return binary_search(arr, low, high, key);
   }else if (arr[mid] < key){
    low = mid + 1;
    return binary_search(arr, low, high, key);
   }
  };
  var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];
  var result = binary_search(arr, 0, 13, 10);
  alert(result); // 9 返回目標元素的索引值 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript實現(xiàn)手寫call/apply/bind的示例代碼

    JavaScript實現(xiàn)手寫call/apply/bind的示例代碼

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)手寫call/apply/bind的方法,文中的示例代碼講解詳細,對我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下
    2023-02-02
  • 一文帶你快速學(xué)會JavaScript條件判斷及高級用法

    一文帶你快速學(xué)會JavaScript條件判斷及高級用法

    JavaScript支持其用于執(zhí)行根據(jù)不同的條件不同的操作條件語句,下面這篇文章主要給大家介紹了關(guān)于如何在JavaScript中更好的使用條件判斷的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • List Installed Hot Fixes

    List Installed Hot Fixes

    List Installed Hot Fixes...
    2007-06-06
  • Js瀏覽器全屏代碼(模仿按F11)

    Js瀏覽器全屏代碼(模仿按F11)

    Js瀏覽器全屏代碼(模仿按F11),需要的朋友可以參考下。
    2011-01-01
  • JavaScript性能陷阱小結(jié)(附實例說明)

    JavaScript性能陷阱小結(jié)(附實例說明)

    JavaScript陷阱太多,因此我們得步步為營,下面這些點,相信很多同學(xué)都會遇到,希望朋友們多注意下。JavaScript陷阱太多,因此我們得步步為營,下面是一些常見的影響性能的陷阱。
    2010-12-12
  • JavaScript中return返回多個值的三個方法實現(xiàn)

    JavaScript中return返回多個值的三個方法實現(xiàn)

    本文主要介紹了JavaScript中return返回多個值的三個方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 微信小程序?qū)崿F(xiàn)導(dǎo)航欄選項卡效果

    微信小程序?qū)崿F(xiàn)導(dǎo)航欄選項卡效果

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)導(dǎo)航欄選項卡效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • JWT?Json?Web?Token全面詳解

    JWT?Json?Web?Token全面詳解

    這篇文章主要為大家介紹了JWT?Json?Web?Token全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2022-11-11
  • JavaScript中this函數(shù)使用實例解析

    JavaScript中this函數(shù)使用實例解析

    這篇文章主要介紹了JavaScript中this函數(shù)使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 詳解webpack+express多頁站點開發(fā)

    詳解webpack+express多頁站點開發(fā)

    這篇文章主要介紹了詳解webpack+express多頁站點開發(fā)
    2017-12-12

最新評論