首页 > 其他 > 详细

c - 折半查找(二分法检索)

时间:2014-12-11 11:51:43      阅读:255      评论:0      收藏:0      [点我收藏+]
 1 #include <stdio.h>
 2 
 3 #define LEN 10
 4 
 5 /*
 6 折半查找(二分法检索).
 7 */
 8 
 9 int 
10 index_of(int *a, int k) {
11     int l = 0;
12     int r = LEN -1;
13     int m;
14     while(l <= r) {
15         m = (r + l) >> 1;    //右移(即除以2).
16         if(k == a[m])
17             return m;    //找到,则直接返回下标.
18         else if(k > a[m])
19             l = m + 1;
20         else
21             r = m - 1;    
22     }
23     return -1;    //结束循环后,仍未找到,则表示没有.
24 }
25 
26 
27 int
28 main(void) {
29             // 0  1, 2, 3, 4, 5, 6, 7, 8,  9
30     int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 19, 22};
31     int i = index_of(a, 19);
32     printf("%d\n", i);
33 }

 

c - 折半查找(二分法检索)

原文:http://www.cnblogs.com/listened/p/4157073.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!