在一个有序数组中找到第一个比X大的数的位置
利用二分查找
int find_first_larger_than_k(int *list,int len,int k)
{
if(list == nullptr || len <=0 || list[len-1] <= k)
{
return -1;
}
int left = 0;
int right = len - 1;
int res = len - 1;
while(left < right)
{
int mid = (left + right)/2;
if(list[mid] > k)
{
right = mid -1;
res = mid;
} else{
left = mid + 1;
}
}
return res;
}
本文由 Ryan 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2019/03/10 16:23