当前位置: 首页 > news >正文

洛阳网站建设睿翼网络入驻洛阳上杭网页设计

洛阳网站建设睿翼网络入驻洛阳,上杭网页设计,山西太原发布紧急通知,电商营销元二分搜索#xff08;Steven Skiena 在《算法设计手册》第 134 页中也称为单边二分搜索#xff09;是二分搜索的一种修改形式#xff0c;它以增量方式构建数组中目标值的索引。与普通二分搜索一样#xff0c;元二分搜索需要 O(log n) 时间。 元二分搜索#xff0c;也称为…        元二分搜索Steven Skiena 在《算法设计手册》第 134 页中也称为单边二分搜索是二分搜索的一种修改形式它以增量方式构建数组中目标值的索引。与普通二分搜索一样元二分搜索需要 O(log n) 时间。 元二分搜索也称为单边二分搜索是二分搜索算法的一种变体用于搜索有序列表或元素数组。该算法旨在减少在列表中搜索给定元素所需的比较次数。 元二分搜索背后的基本思想是从包含整个数组的大小为 n 的初始区间开始。然后该算法像二分搜索一样计算中间元素并将其与目标元素进行比较。如果找到目标元素则搜索终止。如果中间元素大于目标元素则算法将新区间设置为前一个区间的左半部分如果中间元素小于目标元素则将新区间设置为前一个区间的右半部分间隔。但是与二分搜索不同元二分搜索不会对循环的每次迭代执行比较。 相反该算法使用启发式方法来确定下一个间隔的大小。它计算中间元素的值与目标元素的值之间的差值并将差值除以预定常数通常为2。然后将该结果用作新区间的大小。该算法将继续进行直到找到目标元素或确定它不在列表中。 元二分搜索相对于二分搜索的优势在于它在某些情况下可以执行更少的比较特别是当目标元素接近列表开头时。缺点是在其他情况下该算法可能比二分查找执行更多的比较特别是当目标元素接近列表末尾时。因此当列表的排序方式与目标元素的分布一致时元二分搜索是最有效的。   这是元二分搜索的伪代码 function meta_binary_search(A, target):     n length(A)     interval_size n     while interval_size 0:         index min(n - 1, interval_size / 2)         mid A[index]         if mid target:             return index         elif mid target:             interval_size (n - index) / 2         else:             interval_size index / 2     return -1 例子 Input: [-10, -5, 4, 6, 8, 10, 11], key_to_search 10 Output: 5 Input: [-2, 10, 100, 250, 32315], key_to_search -2 Output: 0  确切的实现有所不同但基本算法有两个部分           1、计算出存储最大数组索引需要多少位。         2、通过确定索引中的每个位应设置为 1 还是 0增量构造数组中目标值的索引。方法         1、在变量 lg 中存储表示最大数组索引的位数。         2、使用 lg 在 for 循环中开始搜索。         3、如果找到该元素则返回 pos。         4、否则在 for 循环中增量构造索引以达到目标值。         5、如果找到元素则返回 pos否则返回 -1。 下面是上述方法的实现  // C implementation of above approach   #include iostream #include cmath #include vector using namespace std;   // Function to show the working of Meta binary search int bsearch(vectorint A, int key_to_search) {     int n (int)A.size();     // Set number of bits to represent largest array index     int lg log2(n-1)1;        //while ((1 lg) n - 1)         //lg 1;       int pos 0;     for (int i lg ; i 0; i--) {         if (A[pos] key_to_search)             return pos;           // Incrementally construct the         // index of the target value         int new_pos pos | (1 i);           // find the element in one         // direction and update position         if ((new_pos n) (A[new_pos] key_to_search))             pos new_pos;     }       // if element found return pos otherwise -1     return ((A[pos] key_to_search) ? pos : -1); }   // Driver code int main(void) {       vectorint A { -2, 10, 100, 250, 32315 };     cout bsearch(A, 10) endl;       return 0; }   // This implementation was improved by Tanin  输出  1 时间复杂度 O(log n)其中 n 是给定数组的大小辅助空间 O(1) 因为我们没有使用任何额外空间
http://www.pierceye.com/news/982166/

相关文章:

  • 网站制作前期所需要准备wordpress邮箱配置文件
  • 网站建设网站排名怎么做赣州专业做网站
  • 吉林电商网站建设价格做网站需要每年都缴费吗
  • 怎样用dede搭建网站域名网址
  • 做网站编辑有前途怎么样才算是一个网站页面
  • 建设鲜花网站前的市场分析网店设计理念
  • 网站建设优化服务公司wordpress非代码方式添加备案号
  • asp网站安装到空间教育网站平面设计
  • 快速设计一个网站网站h标签
  • 怎么做百度联盟网站前端面试题
  • 电子商务网站建设的基本要求wordpress提问
  • 论坛网站制作费用wordpress如何调用html代码
  • 打码兔怎么和网站做接口重庆网站建设找承越
  • 做海报的网站什么编辑器微楼书网站建设
  • 免费建站的网站能做影视网站吗深圳网站建设素材网站
  • 网页中网站设计规划流程wordpress主题
  • 贵阳百度做网站电话培训学校
  • 网站关键词推广哪家好深圳方维网络科技有限公司
  • 美工需要的网站阿里云wordpress托管
  • 医疗行业网站建设怎样在网上建立平台
  • 潍坊网站建设网超之梦做的网站后台修改栏目描述
  • 广西建设厅官网证件查询网站优化对企业有什么好处
  • 哪个网站做外贸的多济南建设信息网官网
  • 制作网站能挣钱企业宣传片策划公司
  • 临沂网站建设模板wordpress添加导航页面
  • 有关wordpress教学的网站商标注册号
  • 常用搜索网站浙江立鹏建设有限公司网站
  • 天津做网站优化的公司番禺商城网站建设
  • 网站建设大熊猫点搜营销型网站头部布局的元素
  • wordpress 网站死机淄博专业网站建设价格