您的位置:首页 > 编程语言 > C语言/C++

二分查找 C语言

2016-04-05 21:17 267 查看
//--摘自虞歌老师的《程序设计基础》
#include <stdio.h>
#define ARRAY_SIZE 13
int bubbleSort(int list[],int arraySize);
int binarySearch(int key,int list[],int arraySize);
void printArray(const int list[],int arraySize);
/*二分查找*/
int main(void){
int key,index;
int list[ARRAY_SIZE]={2,4,7,10,11,45,50,59,60,66,69,70,79};
printArray(list,ARRAY_SIZE);
printf("请输入要查找的值:");
scanf("%d",&key);
index=binarySearch(key,list,ARRAY_SIZE);
if(index<0){
printf("查找失败!");
}
else{
printf("查找成功!%d位于数组下标%d位置",key,index);
}
return 0;
}
int binarySearch(int key,int list[],int arraySize){
int low,mid,high;
low=0;
high=arraySize-1;
while(low<=high){
mid=(low+high)/2;
if(key<list[mid]){
high=mid-1;
}else if(key==list[mid]){
return mid;
}else{
low=mid+1;
}
}
return -1;
}
void printArray(const int list[],int arraySize){
int i;
for(i=0;i<arraySize;i++){
printf("%d ",list[i]);
}
printf("\n");
}


运行结果如图:



--摘自虞歌老师的《程序设计基础》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: