二分查找算法必需是对于那些已经排序好的数据进行二分方式查找,这个算法不难,但是对于二分查找算法前的排序才是问题。
下面是用C写的
struct data
{
int id;
node *p;
};
int halfFound(struct data array[], int count, int id)
{
int frist = 0;
int end = count-1;
int half = count/2;
while(frist < end || frist == end)
{
if(id < array[half].id)
end = half -1;
else if(id > array[half].id)
frist = half + 1;
else
return half;
half = (frist + end)/2;
}
return -1;
}