"写一个函数,将任意长度的已赋值的整数数组从大到小排序(冒泡)并输出排序结果。 " c++(至少包含两个长度不同的数组)
时间: 2024-09-20 13:05:47 浏览: 29
排序算法_随机生成1000个数字_用排序算法排序并比较算法的赋值次数_
5星 · 资源好评率100%
在C++中,你可以创建一个名为`bubbleSortDescending`的函数,采用冒泡排序算法对整数数组进行降序排列。这个函数接受一个整数数组作为输入,并返回排序后的数组。以下是函数的示例实现,包括处理两个不同长度的例子:
```cpp
#include <iostream>
using namespace std;
// 冒泡排序降序
void bubbleSortDescending(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 1 - i; ++j) {
if (arr[j] < arr[j + 1]) { // 交换元素,如果前一个较大
swap(arr[j], arr[j + 1]);
}
}
}
}
// 示例:处理不同长度的数组
void sortAndPrintArrays() {
// 长度较大的数组
int arr1[] = {9, 5, 7, 3, 6};
int len1 = sizeof(arr1) / sizeof(arr1[0]);
bubbleSortDescending(arr1, len1);
cout << "Sorted array 1 (length " << len1 << "): ";
for (int i : arr1)
cout << i << " ";
// 长度较小的数组
int arr2[] = {1, 8, 4};
int len2 = sizeof(arr2) / sizeof(arr2[0]);
bubbleSortDescending(arr2, len2);
cout << "\nSorted array 2 (length " << len2 << "): ";
for (int i : arr2)
cout << i << " ";
}
int main() {
sortAndPrintArrays();
return 0;
}
```
当你运行这段代码时,它会分别对两个数组进行降序排序并打印结果。注意,对于不同长度的数组,冒泡排序的时间复杂度依然为O(n^2),所以当数据量很大时效率较低。
阅读全文