美文网首页
查找算法

查找算法

作者: sorry510 | 来源:发表于2020-03-04 17:00 被阅读0次
  1. 顺序查找 时间复杂度O(n)
  2. 折半查找(二分查找) 时间复杂度O(logn) 把n个数化为一颗二叉树输的高度为logn
  3. 差值查找 将分割值mid改为low+(high-low)*(key-a[low])/(a[high]-a[low]),a为查找的序列
    例如:
    a = [1, 16, 24, 35, 47, 59, 62, 73, 88, 99], low=0,high=9,a[low]=1,a[high]=99,key为要找的数
  4. 斐波那契查找(黄金分割原理),按照斐波那契序列分割序列
    F=[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
    a为需要查找的序列,需要的F序列为F[k]-1 >= len(a)的k最小值,关键算法为
mid = low + F[k-1]  - 1;
if(key < a[mid]) {
  high = mid - 1;
  k -= 1;
}else if(key > a[mid]) {
  low = mid + 1;
  k -= 2;
}else {
  return mid;
}

相关文章

网友评论

      本文标题:查找算法

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