c++递归法检测输入数组是否按照升序排列。如果数组元素满足a[i] ≤ a[i+1] (0≤i<n-1),则函数返回true,否则返回false
时间: 2024-09-17 19:06:53 浏览: 32
使用快速排序法对一维数组进行排序
在C++中,你可以使用递归的方式来检查一个整数数组是否按升序排列。下面是一个简单的递归函数`isSorted`的示例:
```cpp
#include <iostream>
using namespace std;
bool isSorted(int arr[], int n) {
// 如果数组只有一个元素或者空数组,认为它是有序的
if (n <= 1)
return true;
// 检查当前元素是否小于等于下一个元素
if (arr[n - 1] <= arr[n - 2])
return isSorted(arr, n - 1); // 递归检查剩余部分
else
return false; // 非递归情况,当前元素大于前一个,所以不是升序
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
if (isSorted(arr, n))
cout << "Array is sorted in ascending order." << endl;
else
cout << "Array is not sorted in ascending order." << endl;
return 0;
}
```
在这个例子中,`isSorted`函数会不断将问题规模减小(每次递归减少一个元素),直到问题变得如此简单,即只剩下一个元素或为空,这时就可以确定整个数组是有序还是无序。
阅读全文