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;
    };
}
posted @ 2020-07-13 20:23  浮华而已-  阅读(187)  评论(0编辑  收藏  举报