二分查找算法是基于已经排好序的数列。这是它的实现:
#include <stdio.h> #include <stdlib.h> #include <string.h>
//二分法查找
int find(int *result,int key,int len) { int first,end,mid; first=0; end=len-1; while(first<=end)//注意这里的等于 { mid=(first+end)/2; if(result[mid]==key) { return 1; } else if(result[mid]>key) { end=mid-1; } else { first=mid+1; } } return 0;
}
int main() { int value[10]={1,2,3,4,5,6,7,8,9,10}; int res=find(value,4,10); printf("%d/n",res);
return 0; }