查找算法总结

来源:互联网 发布:中怡康家电市场数据 编辑:程序博客网 时间:2024/06/05 08:31

         一、 线性查找

        又称顺序查找,是从数组的第一个元素开始查找,直到找到待查找元素的位置,直到查找到结果。

        最佳的状况时间是1 ,就是第一个就是待查找的远射,最差的查找状况是O(n),就是最后一个是待查找的元素。

         二 、折半查找

         折半查找是将待查找的数组元素不断的分为两部分,每次淘汰二分之一,但是有个大前提是,元素必须是有序的,如果是无序的则要先进行排序操作,这种查找的方法,类似于找英文字典的Java,我们可以一下子找到字母J开头的,再仔细找。

        最佳的状况时间是1,就是第一次分开就查找到了,最差的查找状态是O(n),便是待查找的数据出现在最后一次。

        三、 费氏查找

        费氏查找主要是根据费氏数列1 1 2 3 5 8 13 ...... 来确定范围,然后再进行查找 

       四 、插补查找

       插补查找是一种类似折半查找的查找方法,插补查找是以比例的概念,求出待查找数据的可能位置,然后进行比较,如果该值比待查找的小,表示待查找的值可能出现在该值之前的范围,就这样一直缩小范围来确定最终的目标。  

        五、二叉查找树

        二叉查找树是先对待查找的数据进行生成树,确保树的左分支的值小于右分支的值,然后在就和每个节点的父节点比较大小,查找最适合的范围。

       这个算法的查找效率很高,但是如果使用这种查找方法要首先创建树。

        以上就是对查找算法的小小总结,在以后的应用中我们应该根据具体的问题具体分析,找到解决问题的最优解决方案。