二分查找

 1 /* 二分查找 */
 2 
 3 #include<stdio.h>
 4 #include<stdlib.h>
 5 #define N 1024
 6 
 7 void search(int a[N],int num)
 8 {
 9     int tou = 0;
10     int wei = N-1;
11     int zhong;
12     int flag = -1;// 代表找不到
13     
14     int ci = 0;// 统计次数
15 
16     while (tou <= wei)
17     {
18         printf("\n%d,  %d,  %d",tou,wei,++ci);
19 
20         zhong = (tou+wei)/2;// 取中间值
21         if (num == a[zhong])
22         {
23             printf("找到,a[%d] = %d",zhong,num);
24             flag = 1;
25             break;
26         }
27         else if (num > a[zhong])
28         {
29             tou = zhong + 1;
30         }
31         else
32         {
33             wei = zhong - 1;
34         }
35     }
36 
37     if (flag == -1)
38     {
39         printf("没有找到");
40     }
41 
42 
43 }
44 
45 void main()
46 {
47     int a[1024];
48     for(int i=0;i<N;i++)
49     {
50         a[i] = i;
51         printf("%d  ",a[i]);
52     }
53     
54     int num;
55     scanf("%d",&num);
56 
57     search(a,num);// 调用函数查找
58 
59     system("pause");
60 }

 

posted on 2015-06-24 09:06  Dragon-wuxl  阅读(182)  评论(0)    收藏  举报

导航