将二维数组各列元素的值升序排序,排序算法使用选择排序,用C语言的知识写,数据为四行五列
时间: 2024-04-30 07:19:55 浏览: 65
排序算法选择排序(C语言)
以下是一个示例代码,实现了对二维数组各列元素的值进行升序排序:
```
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
int temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
int main() {
int arr[4][5] = {{5, 3, 2, 4, 1}, {9, 7, 6, 8, 10}, {15, 12, 11, 13, 14}, {20, 17, 19, 16, 18}};
int i, j;
for (i = 0; i < 5; i++) {
int col[4];
for (j = 0; j < 4; j++) {
col[j] = arr[j][i];
}
selectionSort(col, 4);
for (j = 0; j < 4; j++) {
arr[j][i] = col[j];
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
该代码中,我们首先定义了一个 `selectionSort` 函数,用于实现选择排序。然后,在 `main` 函数中,我们定义了一个 `4x5` 的二维数组 `arr`,并按列进行排序。具体来说,我们首先循环遍历每一列,将当前列的元素存储到一个一维数组 `col` 中,然后调用 `selectionSort` 函数对 `col` 进行排序,最后再将排序后的结果存回到原始的二维数组 `arr` 中。最后,我们再次循环遍历 `arr`,输出排序后的结果。
阅读全文