c语言编写冒泡排序函数BubbleSort实现对一个整型顺序表的降序排列,并在函数中输出排序的各趟结果。(20分)
时间: 2024-11-22 15:47:16 浏览: 35
在C语言中,我们可以编写一个名为`bubbleSortDescend`的函数来实现冒泡排序算法,对整数数组进行降序排列。这是一个简单的示例:
```c
#include <stdio.h>
void bubbleSortDescend(int arr[], int n) {
for (int i = 0; i < n - 1; i++) { // 遍历数组直到倒数第二个元素
for (int j = 0; j < n - i - 1; j++) { // 内层循环用于相邻元素比较
if (arr[j] < arr[j + 1]) { // 如果前一个元素小于后一个
// 交换它们
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// 输出每趟排序后的结果
printf("After pass %d: ", i+1);
for (int k = 0; k <= n; k++) {
printf("%d ", arr[k]);
}
printf("\n");
}
}
}
}
// 测试函数
int main() {
int nums[] = {5, 3, 9, 1, 7};
int n = sizeof(nums) / sizeof(nums[0]);
bubbleSortDescend(nums, n);
return 0;
}
```
在这个例子中,`bubbleSortDescend`函数首先外层循环控制总共需要进行多少次遍历,内层循环则每次比较相邻的两个元素并根据需要交换它们的位置。每当完成一次遍历,就打印出当前的排序状态。
运行这个程序会输出每趟排序后的结果以及最终的降序排列。
阅读全文