×

二维数组排序 二维数组 排序

如何对二维数组进行排序?java数组排序

admin admin 发表于2022-07-18 05:46:41 浏览98 评论0

抢沙发发表评论

使最大数置于第一位//第二次再循环查找第二大的数并记下其位置,使最大数置于第二位//依次类推.........................................//第i次再循环查找第i大的数并记下其位置,直到最大}/***如果第 i大数的位置不在 i,则交换****/if(i!=max){tmp = a;a;a = tmp;}}for(int i=0;i《a.length;i++)System.out.print(a+“ “);}}C语言 如何对二维数组进行按列排序不管有多少尺寸,程序源码:#include 《stdio.h》#include 《stdlib.h》 #define M 3#define N 3 //输出二维数组的函数void print(int a),cmp); } printf(“按列排序后再按行排序后二维数组变为:\n“); print(a); printf(“\n“); system(“pause“); return 0;}编译运行后的结果如下:java数组排序//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置//比如:第一次先找到最大的数并记下其位置,就不能直接当成一维数组进行排序,如果其不在数组第二位,对二维数组按列排序后。

如何对二维数组进行排序


在C语言中,二维数组按行存储,对每一行排序很方便,可以把每一行当成一个一维数组,使用排序函数直接进行排序。
然而对每一列进行排序,就不能直接当成一维数组进行排序。但是仍然可以把第j列a在逻辑上当成一维数组进行排序,下面以使用冒泡排序为例对其排序。
对二维数组按列排序后,进一步展示了如何调用快速排序函数按行进行排序。
程序源码:
#include 《stdio.h》#include 《stdlib.h》 #define M 3#define N 3 //输出二维数组的函数void print(int a),cmp); } printf(“按列排序后再按行排序后二维数组变为:\n“); print(a); printf(“\n“); system(“pause“); return 0;}
编译运行后的结果如下:

java数组排序


//原理:每次都找到当次最大的数,按大小顺序依次放入数组相应位置
//比如:第一次先找到最大的数并记下其位置,如果其不在数组第一位,
//则将其与第一位交换,使最大数置于第一位
//第二次再循环查找第二大的数并记下其位置,如果其不在数组第二位,
//则将其与第二位交换,使最大数置于第二位
//依次类推.........................................
//第i次再循环查找第i大的数并记下其位置,如果其不在数组第 i位,
//则将其与第 i位交换,使最大数置于第 i位
public class SelectSort {
public static void main(String args) {
int a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;i《a.length;i++){
max = i;//
/**查找第 i大的数,直到记下第 i大数的位置***/
for(int j=i+1;j《a.length;j++){
if(a)
max = j;//记下较大数位置,再次比较,直到最大
}
/***如果第 i大数的位置不在 i,则交换****/
if(i!=max){
tmp = a;
a;
a = tmp;
}
}
for(int i=0;i《a.length;i++)
System.out.print(a+“ “);
}
}

C语言 如何对二维数组进行按列排序

不管有多少尺寸,机器都是一个维度,并且是优选的。

#include “stdio.h“
int main(int argc,char *argv){
int x={{9,4,3},{6,2,7},{5,8,1}},i,j,k,*p;
printf(“Before ordering is as follows:\n“);
for(i=0;i《3;i++){
for(j=0;j《3;printf(“%2d“,x));
printf(“\n“);
}
for(p=(int *)x,i=0;i《9;i++){//用p=(int *)x将x降为一维数组p,选择法排序
for(k=i,j=k+1;j《9;j++)
if(p)
k=j;
if(k!=i)
j=p=j;
}
printf(“Sorted as follows:\n“);
for(i=0;i《3;i++){//输出排序后的二维数组
for(j=0;j《3;printf(“%2d“,x));
printf(“\n“);
}
return 0;
}

操作结果: