最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

最新評論

建平县| 静乐县| 奈曼旗| 陕西省| 双柏县| 太保市| 青浦区| 巴林右旗| 凤翔县| 五寨县| 中江县| 阳东县| 沙河市| 含山县| 五台县| 阿克陶县| 新巴尔虎左旗| 南和县| 抚顺县| 洮南市| 如皋市| 台东县| 罗田县| 厦门市| 沁水县| 大悟县| 蒙自县| 灵山县| 伊宁市| 富宁县| 甘德县| 弥渡县| 东辽县| 柳州市| 德钦县| 景洪市| 陵水| 娄底市| 长兴县| 綦江县| 乐亭县|