发表于: 2017-05-28 23:49:28

1 936


今天完成的事情:写论文


明天计划的事情:完成更多合作公司


遇到的问题:论文好难凑字数啊啊啊


收获:研究了二分搜索:


对于一个有序数组,可以通过二分搜索的方法去找到一个数在数组的位置:

思路很简单:取数组中间值比较和目标值的大小。若相等则,序号则为中间数的序号。

不相等,则将中间值作为最大或最小值,缩小范围继续搜索。

这样的话,非常适合用递归写:

var Arr = [3, 5, 6, 7, 9, 12, 15];
function binary(find, arr, low, high) {
   if (low <= high) {
       if (arr[low] == find)
           return low;
       if (arr[high] == find)
           return high;
       var mid = Math.ceil((high + low) / 2);
       if (arr[mid] == find) {
           return mid;
       } else if (arr[mid] > find) {
           return binary(find, arr, low, mid - 1);
       } else {
           return binary(find, arr, mid + 1, high);
       }
   }
   return -1;
}
console.log(binary(15, Arr, 0, Arr.length - 1))



学习了同构数组、异构数组、列表、栈和队列在计算机中的存储方式。


返回列表 返回列表
评论

    分享到