二维数组排序,如:
int arr[2][3] = {{4,12,8},{10,7,17}};
排序后: arr = {{4,7,8},{10,12,17}};
该算法写的比较渣,嵌套了多层for循环,大学刚接触C语言时写着玩的
/*
对二维数组进行整体排序(选择排序)
arr[0][0] > arr[0][1]
arr[0][0] > arr[0][2]
arr[0][0] > arr[0][3]
arr[0][0] > arr[1][0]
arr[0][0] > arr[1][1]
arr[0][0] > arr[1][2]
.....
int arr[2][3];
for (int n=0;n<2;n++)
for (int m=0;m<3;m++)
for(int i=0;i<2;i++) {
for (int j=0;j<3;j++) {
arr[n][m] >arr[i][j];
}
}
*/
void chooseSortAllIntArray2 (int arr[][6],int row,int col) {
for (int m=0; m<row; m++) {
for (int n=0; n<col; n++) {
if (m==row-1 && n==col-1) {
return;
}
int nl = n;//nl作为n的替身
for(int i=m; i<row; i++) {
for (int j=i>m?0:n+1; j<col; j++) {
if(nl==col-1) {
i=m+1;
j=0;
nl=-1;//nl作废
}
if (arr[m][n] > arr[i][j]) {
int temp = arr[m][n];
arr[m][n] = arr[i][j];
arr[i][j] =temp;
}
}
}
}
}
}
/*
对二维数组进行整体排序(冒泡排序)
arr[0][0] > arr[0][1]
arr[0][1] > arr[0][2]
arr[0][2] > arr[1][0]
arr[1][0] > arr[1][1]
arr[1][1] > arr[1][2]
arr[0][0] > arr[0][1]
.....
int arr[2][3];
*/
void bubbleSortAllIntArray2 (int arr[][6],int row,int col) {
for (int count1=0; count1<row*col-1; count1++) { //大循环次数
int count2 = row*col-1-count1; //小循环次数
for (int i=0; i<row; i++) {
if (count2==0) {
break;
}
for (int j=0; j<col; j++) {
if (count2==0) {
break;
}
if (j==col-1) {
if (arr[i][j]>arr[i+1][0]) {
int temp = arr[i][j];
arr[i][j] = arr[i+1][0];
arr[i+1][0] = temp;
}
} else {
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;
}
}
count2--;
}
}
}
}
//遍历二维数组
for (int i=0; i<length1; i++) {
for (int j=0; j<length2; j++) {
printf("%d ",arr[i][j]);
}
}