/**
*折半查找:适用于关键字有序的顺序表的查找
**/
#include<stdio.h>
int binarySearch(int a[],int n, int key)
{
int low = 0,high = n - 1;
while(low <= high)
{
int mid = (low + high)/2;
if(a[mid] == key)
return mid;
if(a[mid] < key)
low = mid + 1;
if(a[mid] > key)
high = mid - 1;
}
return -1;
}
int main()
{
int a[10] = {2,3,5,7,8,10,12,15,19,21};
int n;
printf("the content of array a is :\n");
for(int i = 0;i < 10;i++)
{
printf("%d ",a[i]);
}
printf("please input the number you want to search:\n");
scanf("%d",&n);
int addr = binarySearch(a,10,n);
if(-1 != addr)
printf("%d is at %dth of array a\n",n,addr);
else
printf("no this number!\n");
return 0;
}