二分查找
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) 收藏 举报
浙公网安备 33010602011771号