二分搜索(分治法)
代码如下:
//二分搜索
#include<stdio.h>
int BinarySearch(int a[],int x,int n);
int BinarySearch(int a[],int x,int n)
{
int left=0,right=n-1,mid; //左右两极端
while(left<=right){
mid=(left+right)/2;
if(a[mid]==x){
return mid;
}
if(a[mid]<x)
left=mid+1;
else
right=mid-1;
}
return -1;
}
int main()
{
int a[9]={1,4,6,9,10,18,22,89,100},y; //定义有顺序的
y=BinarySearch(a,22,9);
printf("%d\n",y);
return 0;
}
编译结果如上图。