利用递归思想,选择简单选择或冒泡排序算法,实现一组数据的递增排序c++
时间: 2023-06-26 19:06:52 浏览: 160
以下是基于递归思想实现简单选择排序和冒泡排序的C++代码示例:
## 简单选择排序
```c++
void selectionSort(int arr[], int n) {
if (n <= 1) return; // 递归终止条件
int maxIdx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > arr[maxIdx]) {
maxIdx = i; // 找到最大值的下标
}
}
swap(arr[maxIdx], arr[n - 1]); // 将最大值与最后一个元素交换
selectionSort(arr, n - 1); // 对前n-1个元素进行排序
}
```
## 冒泡排序
```c++
void bubbleSort(int arr[], int n) {
if (n <= 1) return; // 递归终止条件
bool flag = false;
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr[i], arr[i + 1]); // 相邻元素交换位置
flag = true; // 标记本次循环有交换
}
}
if (!flag) return; // 如果本次循环没有交换,则已经有序,直接退出
bubbleSort(arr, n - 1); // 对前n-1个元素进行排序
}
```
需要注意的是,递归算法在排序过程中会产生大量的栈空间,可能会导致栈溢出,因此在实际应用中需要谨慎使用。
阅读全文