二维数组的冒泡排序c
时间: 2024-12-24 10:23:40 浏览: 14
二维数组的冒泡排序通常是对嵌套的一维数组元素进行排序,其原理类似于一维数组的冒泡排序,即通过不断交换相邻未按序的元素,直到整个数组有序。以下是二维数组冒泡排序的一个基本示例,这里以整型数组为例:
```c
#include <stdio.h>
void bubbleSort(int arr[][n], int m) {
for (int i = 0; i < m - 1; i++) {
for (int j = 0; j < m - i - 1; j++) {
// 比较当前行的两个元素
if (arr[i][j] > arr[i][j + 1]) {
// 如果前一个大,交换它们
int temp = arr[i][j];
arr[i][j] = arr[i][j + 1];
arr[i][j + 1] = temp;
}
}
}
}
// 示例:假设 n 表示一列的长度
int main() {
int arr[4][5] = { {8, 5, 2, 9, 1},
{6, 3, 7, 4, 10},
{1, 15, 11, 14, 5},
{13, 16, 12, 18, 17} };
int m = sizeof(arr) / sizeof(arr[0]);
bubbleSort(arr, m);
printf("Sorted 2D Array:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
return 0;
}
```
在这个例子中,`bubbleSort`函数接受一个二维数组和它的行数(m),然后对每一行进行单独的冒泡排序。注意,这个算法并没有改变数组的形状,只是按照顺序排列了每个元素。
阅读全文