摘要: 二分查找 二分查找也叫折半查找。要求这个序列是有序序列。 二分查找的时间复杂度为O(logn),比顺序查找要快一些,比具体步骤如下: 1:找到序列的中点,比较目标数与序列中点对应的数的大小。 2:目标数大于序列中点对应的数,序列的起点变为原序列的中点加1一; 目标数小于序列中点对应的数,序列的终点变 阅读全文
posted @ 2019-08-05 12:04 香格里拉太子zo 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 斐波那契查找 斐波那契查找也是折半查找的一种改良版;斐波那契查找最主要的就是找mid这个点; 在该种查找算法中,我们要找的mid这个点为数组中的黄金分割点,要求黄金分割点 我们就要用到斐波那契数列了;我们可以看一下这个数列:1,1,2,3,5,8,13,21,34,55..........; 可以看 阅读全文
posted @ 2019-08-05 12:01 香格里拉太子zo 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 分块查找(索引表查找) 分块查找是折半查找和顺序查找的一种改进方法,折半查找虽然具有很好的性能, 但其前提条件时线性表顺序存储而且按照关键码排序,这一前提条件在结点树很 大且表元素动态变化时是难以满足的。而顺序查找可以解决表元素动态变化的要求, 但查找效率很低。如果既要保持对线性表的查找具有较快的速 阅读全文
posted @ 2019-08-05 11:58 香格里拉太子zo 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 插值查找 插值查找其实是折半查找的升级版,在我们写折半查找的时候不知道大家想过没有 为什么每次要折一半呢?1/4不行吗?1/8不行吗?这样我们就可以想到,是不是可 以找到更精准的“折半”的方式来处理呢。 在折半查找中 mid=(high+low)/2; 转化一下变成:mid=low+1/2*(hig 阅读全文
posted @ 2019-08-05 10:03 香格里拉太子zo 阅读(557) 评论(2) 推荐(0) 编辑