栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

数组中的二进制搜索

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组中的二进制搜索

由于这是二进制搜索的关键,因此请确保对数组进行排序。

任何索引/随机访问数据结构都可以进行二进制搜索。因此,当您说使用“只是一个数组”时,我会说数组是采用二进制搜索的最基本/最常见的数据结构。

您可以递归(最简单)或迭代地进行。二进制搜索的时间复杂度为O(log
N),这比在O(N)检查每个元素的线性搜索要快得多。以下是维基百科的一些示例:二进制搜索算法:

递归:

BinarySearch(A[0..N-1], value, low, high) {      if (high < low)          return -1 // not found      mid = low + ((high - low) / 2)     if (A[mid] > value)          return BinarySearch(A, value, low, mid-1)      else if (A[mid] < value)          return BinarySearch(A, value, mid+1, high)      else       return mid // found    }

迭代式:

  BinarySearch(A[0..N-1], value) {   low = 0   high = N - 1   while (low <= high) {       mid = low + ((high - low) / 2)       if (A[mid] > value)high = mid - 1       else if (A[mid] < value)low = mid + 1       elsereturn mid // found   }   return -1 // not found}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617054.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号