发表于: 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))
学习了同构数组、异构数组、列表、栈和队列在计算机中的存储方式。
评论