JS数据结构与算法 - 查找(顺序、二分)

时间:2020-07-13 21:59:09   收藏:0   阅读:82

时间复杂度

技术图片

顺序查找(O(n)

字面意思,代码略

?二分查找(O(nlogn)

这个算法要求被搜索的数据结构已排序。以下是该算法遵循的步骤。

(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;
    };
}
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!