冒泡排序实现降序排序c++
时间: 2023-12-17 17:27:17 浏览: 120
以下是使用动态数组实现降序冒泡排序的C++代码,同时统计排序次数并去除相同值:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> arr; // 动态数组存储元素
int n, temp, count = 0;
cin >> n; // 输入元素个数
for (int i = 0; i < n; i++) {
cin >> temp;
arr.push_back(temp); // 将输入的元素加入动态数组
}
for (int i = 0; i < n - 1; i++) { // 排序轮数
for (int j = 0; j < n - i - 1; j++) { // 每轮比较次数
if (arr[j] < arr[j + 1]) { // 降序排序
swap(arr[j], arr[j + 1]); // 交换元素
count++; // 统计排序次数
}
}
}
for (int i = 0; i < n; i++) { // 去除相同值
if (i == 0 || arr[i] != arr[i - 1]) {
cout << arr[i] << " "; }
}
cout << endl << "排序次数:" << count << endl; // 输出排序次数
return 0;
}
```
阅读全文