Arrays 给定一个排序数组和一个正整数k,求1<;=i<;=k时区间(100(i-1)/k,100(i)/k)中的整数个数

Arrays 给定一个排序数组和一个正整数k,求1<;=i<;=k时区间(100(i-1)/k,100(i)/k)中的整数个数,arrays,algorithm,Arrays,Algorithm,给定一个排序数组a[1..n]和一个正整数k,计算1(50,75]G[4]->(75100)的间隔(100(i-1)/k,100(i)/k]中的整数数 有没有分而治之的算法来解决这个问题?而不是线性地解决它 更高级: 另外,如果我们不能直接访问数组A中的元素,并且如果A[x]和A[y]在同一时间间隔内,则有一个函数Compare(x,y)返回true。 如何解决这个问题?我可以尝试使每个组调用最多增加logn时间,并且有k个组因此有O(k logn)运行时间吗 我在这一点上的观察: 如果A[i]

给定一个排序数组a[1..n]和一个正整数k,计算1(50,75]G[4]->(75100)的间隔(100(i-1)/k,100(i)/k]中的整数数

有没有分而治之的算法来解决这个问题?而不是线性地解决它

更高级: 另外,如果我们不能直接访问数组A中的元素,并且如果A[x]和A[y]在同一时间间隔内,则有一个函数Compare(x,y)返回true。 如何解决这个问题?我可以尝试使每个组调用最多增加logn时间,并且有k个组因此有O(k logn)运行时间吗

我在这一点上的观察:
如果A[i]和A[y]在i最简单的次线性方法(假设k线性是可以的;)注意,如果要“查看”数组中的所有元素,就不可能比线性做得更好,因为这已经需要线性时间。