我想要一个递归函数来检查使用二进制搜索的数组的顺序

时间:2016-11-15 15:36:36

标签: c++ recursion binary-search

我编写了一个递归函数来检查大小为n的数组,如果它按升序排列:

Microsoft.PowerShell.Utility

我想做同样的工作,但使用二进制搜索算法(即每次递归调用将数组分成两半)。我怎样才能做到这一点? 谢谢。

2 个答案:

答案 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