JS数据结构与算法 - 查找(顺序、二分)
时间复杂度
顺序查找(O(n)
字面意思,代码略
⭐二分查找(O(logn)
这个算法要求被搜索的数据结构已排序。以下是该算法遵循的步骤。
(1) 选择数组的中间值。
(2) 如果选中值是待搜索值,那么算法执行完毕(值找到了)。
(3) 如果待搜索值比选中值要小,则返回步骤1并在选中值左边的子数组中寻找。
(4) 如果待搜索值比选中值要大,则返回步骤1并在选种值右边的子数组中寻找。
function Search() {
this.binarySearch = function (item) {
//this.quickSort(); //排序代码
var low = 0,
high = array.length - 1,
mid, element;
while (low <= high) {
mid = Math.floor((low + high) / 2);
element = array[mid];
if (element < item) {
low = mid + 1;
} else if (element > item) {
high = mid - 1;
} else {
return mid;
}
}
return -1;
};
}