posts - 183,  comments - 10,  trackbacks - 0
来自于《算法:C 语言实现》
 1 // 顺序搜索算法
 2 
 3 #include <stdio.h>
 4 
 5 int search(int a[], int v, int l, int r)
 6 {
 7     int i;
 8     for (i = l; i <= r; ++i)
 9     {
10         if (v == a[i])
11         {
12             return i;
13         }
14     }
15     return -1;
16 }
17 
18 int main()
19 {
20     int a[] = {0123456789};
21     int i, pos;
22     for (i = 10; i >= -1--i)
23     {
24         printf("%d\n", search(a, i, 09));
25     }
26     return 0;
27 }

 1 // 二分搜索算法
 2 
 3 #include <stdio.h>
 4 
 5 int search(int a[], int v, int l, int r)
 6 {
 7     int m;
 8     while (r >= l)
 9     {
10         m = (l + r) / 2;
11         if (v == a[m])
12         {
13             return m;
14         }
15         if (v > a[m])
16         {
17             l = m + 1;
18         }
19         else
20         {
21             r = m - 1;
22         }
23     }
24     return -1;
25 }
26 
27 int main()
28 {
29     int a[] = {0123456789};
30     int i, pos;
31     for (i = 10; i >= -1--i)
32     {
33         printf("%d\n", search(a, i, 09));
34     }
35     return 0;
36 }
posted on 2011-04-20 17:12 unixfy 阅读(101) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理