
查找算法
Be_With_I
这个作者很懒,什么都没留下…
展开
-
斐波那契查找算法
f[k]-1 = f[k-1]-1 + f[k-2] - 1 +1 这个公式的由来 因为我们要找到分割的点, 用-1 我们可以将 整体分成三段了。 我们要用的是数据的长度。 也就是要 f[k-1]但是我们mid 的取值其实是下标。所以是 f[k-1] -1;先创建了 f[k]这么个数列,然后要让,数组的长度 = f[k]-1这样我们才能分割...原创 2020-02-17 23:47:01 · 168 阅读 · 0 评论 -
插值查找算法
原来我们二分查找算法的时候是 sta+1/2(end-sta)现在这个插值是 sta+(value-arr[sta])/arr[end]-arr[sta]* (end-sta)通过比较,其实就是前边的 1/2变成了 那个值-最小值在最大值-最小值的比例注意:退出的条件。package a;public class InsertSearch { public static ...原创 2020-02-16 17:42:00 · 186 阅读 · 0 评论 -
二分查找的一个小优化
返回结果换成list在找到这个结果后,把其加入list 并,继续找package a;import java.util.ArrayList;import java.util.Arrays;public class BaniarySearchDuplicate { public static void main(String[] args) { int[] ar...原创 2020-02-16 11:04:18 · 226 阅读 · 0 评论 -
二分查找算法
这个算法要求数据必须是排好序的这次用的是递归实现。package a;public class BaniarySearch { public static void main(String[] args) { int[] arr = {9, 14, 34, 52, 80, 876}; int value = 877; int sta ...原创 2020-02-15 17:58:21 · 158 阅读 · 0 评论 -
线性查找算法
就是遍历查找。用查找的值和数组逐一比较package a;public class LineSeek { public static void main(String[] args) {// int var = 8;// int [] arr = new int[var];// for (int i = 0; i < arr.le...原创 2020-02-15 17:26:42 · 159 阅读 · 0 评论