分享和关爱由此萌生,测试的人生会像流水和氧气 ,逐渐逐渐染绿了山河,染蓝了天空,萌生了飞鸟鱼虫,遍地都是生命。这是寒武纪带给我们的这份喜悦和希望。

算法学习之第一篇——二分查找

上一篇 / 下一篇  2014-09-02 20:34:08 / 个人分类:算法基础

   现在我主要针对2本书,《数据结构》,《算法基础》来细细品味一个又一个算法。

二分查找

typedef struct{
KeyType key;
infoType otherinfo;
}NodeType;

typedef NodeType SeqList[n+1];

int BinSearch(SeqList R, KeyType K)
{
int low = 1 ,high = n, mid;
while(low<high)
{mid = (low + high)/2;
if(R[mid].key == K) return mid;
if(R[mid].key>K)
high = mid -1;
else
low = mid +1 ;
}
return 0;
}
在一串数字(一个已经排好顺序的数组)中,确定中间的一个数字。
如果要查找的数字比中间的大,那么就在中间的数字以后的区域中查找;
如果要查找的数字和处于中间的数字是一样大的,那么就返回这个数字。

比如
44 55 66 88 99
寻找88

首先确定是在 88 99 之间寻找
然后 然后它们中间的数就是88
于是就等于要查找的数字。


TAG:

 

评分:0

我来说两句

wchair

wchair

测试爱好者,数学爱好者,幻想爱好者,故事爱好者!

日历

« 2024-04-14  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 40558
  • 日志数: 32
  • 建立时间: 2007-11-13
  • 更新时间: 2022-11-29

RSS订阅

Open Toolbar