写一个实现二维数组排序的代码
时间: 2024-05-13 14:14:07 浏览: 15
好的,以下是一个实现二维数组排序的示例代码,使用冒泡排序算法:
```python
def sort_2d_array(arr):
n = len(arr)
for i in range(n):
for j in range(n-i-1):
if arr[j][0] > arr[j+1][0]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
这个函数可以按照二维数组的第一列元素进行排序,你可以将其替换为你想要的排序规则。
相关问题
vba写一个二维数组排序代码
可以使用下面的代码实现二维数组的排序:
Sub Sort2DArray()
Dim arr(1 To 3, 1 To 3) As Integer
Dim i As Integer, j As Integer
Dim temp As Integer
'初始化二维数组
For i = 1 To 3
For j = 1 To 3
arr(i, j) = Int((9 - 1 + 1) * Rnd + 1)
Next j
Next i
'二维数组排序
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
For m = i To UBound(arr, 1)
For n = j To UBound(arr, 2)
If arr(i, j) > arr(m, n) Then
temp = arr(i, j)
arr(i, j) = arr(m, n)
arr(m, n) = temp
End If
Next n
Next m
Next j
Next i
'输出排序后的二维数组
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
Debug.Print arr(i, j)
Next j
Next i
End Sub
该代码使用双重循环实现了二维数组的排序,并在排序完成后输出结果。
用c语言写一个二维数组排序
好的,以下是用C语言写一个二维数组排序的示例代码:
```c
#include <stdio.h>
// 定义行列数
#define ROWS 3
#define COLS 4
// 定义函数,用于打印数组
void printArray(int arr[ROWS][COLS]) {
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS; j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
// 定义函数,用于交换两个元素的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 定义函数,用于对数组进行冒泡排序
void bubbleSort(int arr[ROWS][COLS]) {
for(int i = 0; i < ROWS; i++) {
for(int j = 0; j < COLS - 1; j++) {
for(int k = 0; k < COLS - j - 1; k++) {
if(arr[i][k] > arr[i][k+1]) {
swap(&arr[i][k], &arr[i][k+1]);
}
}
}
}
}
int main() {
// 定义二维数组
int arr[ROWS][COLS] = {
{3, 1, 4, 2},
{6, 5, 8, 7},
{9, 10, 11, 12}
};
// 打印排序前的数组
printf("排序前的数组:\n");
printArray(arr);
// 对数组进行冒泡排序
bubbleSort(arr);
// 打印排序后的数组
printf("排序后的数组:\n");
printArray(arr);
return 0;
}
```
这个示例程序定义了一个3行4列的二维数组,并且定义了三个函数:`printArray`函数用于打印数组,`swap`函数用于交换两个元素的值,`bubbleSort`函数用于对数组进行冒泡排序。最后在主函数中调用这些函数来打印排序前的数组、对数组进行排序并打印排序后的数组。