美文网首页
JavaScript数据结构-搜索算法

JavaScript数据结构-搜索算法

作者: 写前端的大叔 | 来源:发表于2019-12-07 23:02 被阅读0次

    搜索算法在平时的编程中很常见,比如我们要在电话薄中查找对手机号,在学生列表中查找某个学生等等,都将用到到搜索算法,比较常见的搜索算法有顺序搜索二分搜索深度优先搜索广度优先搜索等。下面将对各种搜索算法的学习进行总结:

    顺序搜索

    顺序搜索是最简单的一种搜索算法,同时效率也是最慢的,就是遍历数组,一个一个进行对比,具体实现代码如下所示:

      /*
        * 顺序搜索
        * */
        this.sequentialSearch = function (array,item) {
            if(array){
                for(var i = 0;i<array.length;i++){
                    if(item === array[i]){
                        return i;
                    }
                }
            }
            return -1;
        }
    

    二分搜索

    二分搜索也用的比较多,就是先将数组进行排序,然后再进行搜索,搜索过程如下所示:
    (1) 选择数组的中间值。
    (2) 如果选中值是待搜索值,那么算法执行完毕(值找到了)。
    (3) 如果待搜索值比选中值要小,则返回步骤1并在选中值左边的子数组中寻找。
    (4) 如果待搜索值比选中值要大,则返回步骤1并在选种值右边的子数组中寻找。

      /*
        * 二分搜索
        * */
        this.binarySearch = function (array,item) {
            if(array){
                array = array.sort();
                var start = 0,
                    end = array.length - 1,
                    mid,
                    element;
                while (start <=end){
                    mid = Math.floor((start + end) / 2);
                    element = array[mid];
                    if(item === element){
                        return mid
                    }else if(item < element){
                        end = mid - 1;
                    }else{
                        start = mid + 1;
                    }
                }
            }
            return -1;
        }
    

    深度优先搜索广度优先搜索可查看图的遍历。
    https://www.jianshu.com/p/9d356acb6e45

    具体的代码可以在源码中进行查看
    个人博客

    相关文章

      网友评论

          本文标题:JavaScript数据结构-搜索算法

          本文链接:https://www.haomeiwen.com/subject/vrgugctx.html