C++编写上浮策略的冒泡程序
时间: 2024-05-03 21:18:53 浏览: 14
上浮策略的冒泡排序是一种从小到大排序的算法,其基本思想是将序列中较大的元素逐个向后移动,直到移动到该元素在序列中的正确位置。以下是用C++实现上浮策略的冒泡排序程序:
```c++
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
bool flag = false; // 标记是否发生交换
for (int j = n - 1; j > i; j--) {
if (arr[j] < arr[j - 1]) {
swap(arr[j], arr[j - 1]);
flag = true;
}
}
if (!flag) break; // 如果没有发生交换,则已排好序
}
}
int main() {
int arr[] = {5, 2, 8, 3, 1, 6};
int n = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, n);
cout << "Sorted array: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
在上述代码中,我们定义了一个`bubbleSort`函数来实现上浮策略的冒泡排序。在每一轮排序中,我们从后向前遍历未排序的部分,如果发现一个比前一个元素小的元素,就交换它们的位置。如果没有发生交换,则说明序列已经排好序,可以直接退出循环。
最后,我们在`main`函数中定义一个测试数组,并调用`bubbleSort`函数进行排序。最后输出排序后的结果。