码迷,mamicode.com
首页 > 编程语言 > 详细

c语言二分法

时间:2014-12-27 15:12:59      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <stdio.h>  
 2 #include <stdlib.h>  
 3   
 4 int Search(int *a,int key)  
 5 {//在顺序表中折半查找key的元素,若找到返回元素下标,否则返回0  
 6     int low=0,mid;  
 7     int high=20;  
 8     while(low<=high)  
 9     {  
10         mid=(low+high)/2;  
11         if(key==a[mid]) return mid;    //找到待查元素  
12         else if(key<a[mid]) high=mid-1;//继续在前半区查找  
13         else low=mid+1;                //在后半区查找  
14     }  
15     return 0;                          //未找到  
16 }  
17   
18 void main()  
19 {  
20     int *a,key,i;  
21     int b[20]={0};  
22     a=b;  
23     printf("请输入从大到小的20个整数:\n");  
24     for(i=1;i<=20;i++)  
25     {  
26         scanf("%d",&b[i]);  
27               
28     }  
29     printf("\n");  
30     printf("请输入你要查找的数:\n");  
31     scanf("%d",&key);  
32   
33     if(!Search(a,key)) printf("要查找的数不在目标数组中!\n");  
34     else printf("你要查找的数的序号是:%d \n",Search(a,key));  
35 }  

 

c语言二分法

标签:

原文地址:http://www.cnblogs.com/oumyye/p/4188437.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!