用c语言 题目描述 编写函数实现冒泡排序,对 n 个整数按升序排序。 函数接口定义: void bubble_sort ( int x[ ] , int n ); 其中 x 为数组名,n 为数组 x 中待排序元素的个数。 裁判测试程序样例: #include <stdio.h> void bubble_sort ( int x[ ] , int n ); int main ( ) { int i, n, a[100]; scanf ( "%d", &n ); for ( i = 0 ; i < n ; i++ ) scanf ( "%d" , &a[i] ) ; bubble_sort ( a , n ) ; for ( i=0 ; i<n ; i++ ) printf ( "%d " , a[i] ) ; } 输入样例: 10 1 4 7 2 5 8 3 6 9 0 输出样例: 0 1 2 3 4 5 6 7 8 9
时间: 2024-03-13 16:42:39 浏览: 97
下面是实现冒泡排序的函数 bubble_sort 的代码:
```c
void bubble_sort(int x[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (x[j] > x[j + 1]) {
temp = x[j];
x[j] = x[j + 1];
x[j + 1] = temp;
}
}
}
}
```
函数的实现过程是:外层循环控制排序的轮数,内层循环控制每轮比较的次数。每次比较相邻的两个数,如果前一个数比后一个数大,则交换它们的位置。经过 n-1 轮排序后,数组中的元素就按升序排列了。
在主函数中,我们首先读入待排序元素的个数 n,然后读入 n 个整数,存放在数组 a 中。接着调用 bubble_sort 函数对 a 进行升序排序,最后输出排序后的结果。
完整的代码如下:
```c
#include <stdio.h>
void bubble_sort(int x[], int n);
int main() {
int i, n, a[100];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
bubble_sort(a, n);
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
return 0;
}
void bubble_sort(int x[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (x[j] > x[j + 1]) {
temp = x[j];
x[j] = x[j + 1];
x[j + 1] = temp;
}
}
}
}
```
阅读全文