我编写了一个递归函数来检查大小为n的数组,如果它按升序排列:
Microsoft.PowerShell.Utility
我想做同样的工作,但使用二进制搜索算法(即每次递归调用将数组分成两半)。我怎样才能做到这一点? 谢谢。
答案 0 :(得分:1)
bool sortedAscending(const int* x, int n) {
if (n <= 1) return true;
int m = n / 2;
return x[m-1] <= x[m] &&
sortedAscending(x, m) &&
sortedAscending(x + m, n - m);
}
答案 1 :(得分:0)
我更喜欢使用指向候选数组的开头和结尾的指针。这与迭代器样式更加一致。
bottle.py