2011年4月13日 星期三

[C]binary search 折半查找

binary search 折半查找


#include<stdlib.h>
#include<stdio.h>
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
int numarray[] = {123, 145, 512, 627, 800, 933};
int numeric (const int *p1, const int *p2){
return(*p1 - *p2);
}

int lookup(int key){
int *itemptr;
/* The cast of (int(*)(const void *,const void*))
is needed to avoid a type mismatch error at
compile time */
itemptr = (int *)bsearch (&key, numarray, NELEMS(numarray),
sizeof(int), (int(*)(const void *,const void *))numeric);
return (itemptr != NULL);
}


int main(void){
if (lookup(512)){
printf("512 is in the table.\n");
}
else{
printf("512 isn't in the table.\n");
}
return 0;
}

沒有留言:

張貼留言