首页 > 编程语言 > 详细

算法---查找算法

时间:2020-03-23 14:51:55      阅读:66      评论:0      收藏:0      [点我收藏+]

1、查找算法

    在  大量的信息中  寻找  一个特定的信息元素;

2、种类

    a,顺序查找

      将 给定元素   与  数据中的每个元素   进行一一比较;

    b,二分查找(Binary Search)

      前提: 数据 顺序存储  且 有序;   

public static int binarySearch(Integer[] srcArray, int des) {
        //定义初始最小、最大索引
        int start = 0;
        int end = srcArray.length - 1;
        //确保不会出现重复查找,越界
        while (start <= end) {
            //计算出中间索引值
            int middle = (end + start)>>>1 ;//防止溢出
            if (des == srcArray[middle]) {
                return middle;
                //判断下限
            } else if (des < srcArray[middle]) {
                end = middle - 1;
                //判断上限
            } else {
                start = middle + 1;
            }
        }
        //若没有,则返回-1
        return -1;
    }

     c,分块查找

        二分查找  与  顺序查找的优化;

        前提:  各个块之间有序块内元素 无排序要求

        适用情况:

          节点动态变化的情况,当增加或减少节以及节点的关键码改变时,只需将该节点  调整到所在的块  即可;

      

算法---查找算法

原文:https://www.cnblogs.com/anpeiyong/p/12552056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!