美文网首页考研技术文档
算法复习-查找(2)-折半查找法

算法复习-查找(2)-折半查找法

作者: 桔子满地 | 来源:发表于2018-06-22 10:40 被阅读0次

折半查找法

折半查找要求线性表是有序的,即表中记录按关键字排序。

代码:

int BinarySearch(int array[], int low, int high, int k) {
  int mid;
  while (low <= high) {
    mid = (low + high) /  2;
    if (k < array[mid])
      high = mid - 1;
    else if (k > array[mid])
      low = mid + 1;
    else
      return mid + 1;
  }
  return 0;
}

ASL分析:

折半查找的过程可以用二叉树来表示,把当前查找区间中的中间位置上的记录作为树根,左子表和右子表中的记录分别作为根的左子树和右子树,由此得到的二叉树称为折半查找判定树
例如有序序列:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
可以构建如下判定树:

折半查找判定树.png

由折半查找判定树可以求得ASL:
上图中ASL = (3+4+2+3+4+1+3+4+2+4+3+4)/12

相关文章

  • 算法复习-查找(2)-折半查找法

    折半查找法 折半查找要求线性表是有序的,即表中记录按关键字排序。 代码: ASL分析: 折半查找的过程可以用二叉树...

  • 查找算法

    1.顺序查找法 改进后的顺序查找法 2.折半查找法 3.插值查找 插值查找其实是折半查找的升级版,在我们写折半查找...

  • 查找算法

    三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表

  • 排序算法

    算法与数据结构基础 查找算法: 二分查找法: 简介:二分查找法又被称为折半查找法,用于预排序的查找问题 过程: 如...

  • 算法:二分法查找(折半查找法)

    算法:二分法查找(折半查找法) 这是最经典的折半查找,而在面试的时候往往会对某些经典的数据结构和算法进行魔改,这道...

  • 16 基本查找算法:二分查找算法

    二分查找算法 原理 二分查找算法也叫折半法查找法,要求待查找的列表必须是按关键字大小有序排列的顺序表。查找过程如下...

  • 4 查找

    静态查找 顺序查找法 折半查找法 散列 散列的概念 散列函数 冲突解决方法 散列算法设计与分析

  • 顺序查找

    普通的顺序查找 顺序查找-使用a[0] 哨兵 减少了越界判断 折半查找算法 二分查找法 先排序 再查找 适用于有...

  • 二分查找算法

    一、二分查找算法 二分查找算法又称为折半查找算法,它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序...

  • 【爬虫】数据结构实现折半查找的算法

    数据结构实现折半查找的算法 折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码...

网友评论

    本文标题:算法复习-查找(2)-折半查找法

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