#include <stdio.h> #include <stdlib.h> #include <limits.h> int *find(int *list, int num, int len) { int lo,hi,mid; lo = 0; hi = len; while(lo<hi) { mid = (lo+hi)/2; if(num<*(list+mid)) hi = mid; else if(num>*(list+mid)) lo = mid + 1; else return list+mid; } return NULL; } int main() { int t[]={1,2,3,6,9,10,15}; p = find(t,15,7); if(p!=NULL) printf("find %d\n",*p); return 0; } 结果: |
|
来自: champion_xu > 《my yc》