#include <stdio.h>
//冒泡排序,就是升序排列
void maopao(int arr[],int sz) {
//每趟比较前后元素,将最大的元素放到末尾
//12个元素,需要比较11趟
int i = 0;
//趟数
for (i = 0; i < sz-1; i++) {
//前后元素比较,第一趟需要比较9次,第二趟只需要比较8次,......依次类推
int j = 0;
for (j = 0; j < sz - 1 - i; j++) {
//前一个元素>后一个元素,就交换值
int tmp;
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main() {
int arr[3][4] = { 4,2,8,6,9,3,2,1,0,7,3,5 };
int sz = sizeof(arr) / sizeof(arr[0][0]);
//因为实参数组本质上指针,所以在函数内计算sizeof(arr)的值是指向int的指针的长度,并不是数组的长度
//因此函数内部如果需要知道实参数组的长度,那么它必须作为一个显式的参数传递给函数。
maopao(arr,sz);//冒泡排序
//打印数组元素
int i = 0;
for (i = 0; i < 3; i++) {
int j = 0;
for (j = 0; j < 4; j++) {
printf("%d ",arr[i][j]);
}
}
return 0;
}

文章介绍了如何使用C语言实现冒泡排序算法,该算法用于升序排列数组。在主函数中定义了一个二维数组并初始化,然后调用冒泡排序函数进行排序。排序函数通过两层循环比较并交换元素,最后打印排序后的数组。注意,由于函数参数传递的是数组指针,所以需要显式传递数组大小。
47万+

被折叠的 条评论
为什么被折叠?



