程序运行,提示用户输入数字序列“<排序数字序列>”, 用户输入N个数字(N-1个空格分隔)并回车,程序对用户输入的数字进行冒泡排序(升序),输出每轮冒泡结果(若某一轮冒泡结果和上一轮相比无变化则不输出并结束排序!但若用户输入已经排好序则需输出1次排序结果)。每轮输出格式为N个数字用N-1个空格分割,1轮冒泡结果占1行,程序结束
时间: 2023-05-21 08:02:07 浏览: 54
内部排序的程序 ,直接插入排序,简单选择排序,冒泡排序!
4星 · 用户满意度95%
以下是冒泡排序的完整代码:
```
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 输出每轮冒泡结果
printf("%d", arr[0]);
for (j = 1; j < n; j++) {
printf(" %d", arr[j]);
}
printf("\n");
}
}
int main() {
int arr[100], n, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubble_sort(arr, n);
return 0;
}
```
对于输入的数字序列,我们使用一个数组来存储。在冒泡排序的过程中,我们使用两层循环,外层循环控制轮数,内层循环控制每一轮的比较和交换。每一轮结束后,我们输出当前的排序结果。如果某一轮排序结果和上一轮相同,则说明已经排好序,排序结束。
注意,这里的代码只是一个示例,实际应用中需要考虑更多的边界情况和错误处理。
阅读全文