【发布时间】:2015-03-07 00:11:26
【问题描述】:
HERE 是 geeksforgeeks 解决方案。我无法理解 findCeil() 部分。 步骤 4. 在前缀数组中找到步骤 #3 中生成的随机数 Ceil 的索引。设索引为 indexc。
// Utility function to find ceiling of r in arr[l..h]
int findCeil(int arr[], int r, int l, int h)
{
int mid;
while (l < h)
{
mid = l + ((h - l) >> 1); // Same as mid = (l+h)/2
(r > arr[mid]) ? (l = mid + 1) : (h = mid);
}
return (arr[l] >= r) ? l : -1;
}
谁能解释一下正在做的事情。
【问题讨论】:
-
您有什么特别不明白的地方吗?也许是“>>”或“?”。在不缩小查询范围的情况下,您将得到诸如“首先,它声明了一个名称为
mid... 的整数”之类的答案,而您只会重述您已经阅读的内容。 -
对此感到抱歉。我的意思是问 findCeil 的目的是什么。 findCeil 在这里做什么。举个例子