查找(二分)
查找
Mongo_girl
哈哈哈哈哈哈哈哈
展开
-
HDU-1969-Pie
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1969 Pie Problem Description My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a number N of them, of v原创 2017-07-23 21:36:08 · 245 阅读 · 0 评论 -
查找——静态查找_顺序查找
顺序查找: //在elem[1]~elem[n]中查找关键字为k的数据元素 int SequentialSearch(SSTable ST,char k){ ST.elem[0]=k;//哨兵 int i; for(i=ST.length;ST.elem[i]!=k;i--);//从后往前找 return i; } #include<stdio.h>...原创 2019-02-17 16:17:42 · 315 阅读 · 0 评论 -
查找——静态查找_二分查找
int BinarySearch(STable ST,int k){ int left,right,mid; left=1; right=ST.length; while(left<=right){ mid=(left+right)/2; if(k<ST.elem[mid]){ right=mid-1; }else if(k>ST.elem...原创 2019-02-17 21:29:42 · 374 阅读 · 0 评论 -
查找——静态查找_斐波那契查找
二分查找每次查找时会在查找范围上限的中点处比较,而斐波那契查找则在查找范围上限的一个斐波那契分割点上进行查找。 斐波那契查找的优点是在确定下一个比对元素时,仅用加、减就可以计算得出,比二分查找的除法要节省时间。 第一,计算并保存一个斐波那契序列的数组,fib[1]=1,fib[2]=1,fib[3]=2,fib[4]=3,fib[5]=5。 第二,将有序数组的长度扩充到 n=fib[k]-1...原创 2019-02-19 16:56:04 · 242 阅读 · 0 评论 -
查找——静态查找_插值查找
假如要在集合[1,100](分布不一定均匀)中查找10,我们下意识中肯定是看靠前的部分,而不是先看中间的部分。查单词也类似,如果在字典中查找“apple”,我们一般都是先翻到字典相对靠前的部分比对,而不是一开始就翻到正中间去比对,这就是插值查找的来源。 插值查找在增长均匀的元素序列中效率最高(比折半查找高),在增长差异大的元素序列中效率最差(比折半查找低)。 二分查找中查找点计算如下:mid=...原创 2019-02-19 17:13:45 · 197 阅读 · 0 评论