- 积分
- 1284
- 注册时间
- 2014-12-29
- 最后登录
- 2016-11-14
- 在线时间
- 17 小时
- 威望
- 11
- 贡献
- 0
- 金币
- 359
- 钢镚
- 20
- 交易凭证
- 0
- 分享
- 0
- 精华
- 0
- 帖子
- 19
- 主题
- 18
TA的每日心情 | 慵懒 2015-4-16 10:25 |
|---|
签到天数: 8 天 [LV.3]偶尔看看II
版主
   
- 威望
- 11
- 贡献
- 0
- 金币
- 359
- 钢镚
- 20
|
查找数据,是每个程序员必备的技能,今天介绍一种在数组中快速查找的方法:二分查找法,
二分法在前面已经介绍过了,取一个数字的中间值,如果不对,再取。。 一直循环到最终的结果。
此方法比直接在for循环里面循环遍历话费时间要少的多。
下面介绍一种常见的二分查找法。
- // 编程算法之数组二分查找法.cpp : 定义控制台应用程序的入口点。
- //
-
- #include "stdafx.h"
- #include <iostream>
-
- int arrNum[1024];
-
- int seachNum = 733;
-
- int start = 0;
- int end = 1023;
-
- int middle;
-
- int _tmain(int argc, _TCHAR* argv[])
- {
-
- for (int i = 0; i < 1024; i++)
- {
- arrNum[i] = i;
- }
-
- while (start<end)
- {
- middle = (start+end)/2;
- if (seachNum ==arrNum[middle] )
- {
- printf("find it%d\n",middle);
- break;
- }
- else if (seachNum>arrNum[middle])
- {
- start = middle+1;
- }
- else
- {
- end = middle-1;
- }
- printf("start=%d midlle=%d end=%d\n",start ,middle,end);
- }
-
-
- return 0;
- }
复制代码 blog.csdn.net/yaoyuan0701/article/details/45292747
|
|