二分法查找
据说,很多研究生都不能一次很快写对的算法
#include<iostream>
#include<stdio.h>
using namespace std;
int binarysearch(int aim,int a[],int n)
{
int left=0;
int right=n-1;
if(left<right){
int mid=(left+right)/2;
if(aim==a[mid])
return mid;
if(aim<a[mid])
return right=mid-1;
else
return left+1;
}
}
int main()
{
int a[10]={8,3,54,77,22,44,66,333,6,2};
int aim=22,n;
n=10;
printf("%d\n",binarysearch(aim,a,n));
system("pause");
}
posted on 2013-03-16 22:28 carpenter& 阅读(118) 评论(0) 编辑 收藏 举报