Code
int binary_search( int *r, int size, int k )
{
int low=0, high=size-1, mid;
while( low <= high )
{
mid = (low + high)/2;
if( r[mid] == k )
return mid;
else if( r[mid] < k )
low = mid + 1;
else
high = mid -1;
}
return -1;
}
int lower_bound( int *r, int size, int k )
{
int low=0, high=size-1, mid;
while( low < high )
{
mid = (low + high) / 2;
if( k > r[mid] )
low = mid + 1;
else
high = mid;
}
return low;
}
int upper_bound( int *r, int size, int k )
{
int low=0, high=size-1, mid;
while( low < high )
{
mid = (low + high) / 2;
if( k < r[mid] )
high = mid;
else
low = mid + 1;
}
return low;
}
posted @
2009-10-19 19:43
MyShowTime
阅读(
267)
评论()
编辑
收藏
举报