2维数组按某一列进行排序,内详,求救? 12,11,18的排序你会不会?得到一个排序索引值,如12(0),11(1),18,(2)排序后得到11(1),12(0),18(2),括号内为索引。然后根据索引交换一下数组的行就行了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 数据结构中有很多这类的算法,看看书就知道了,太多了。 实在不行,就是针对 12,11,18的冒泡排序,也是最容易理解的方法。 int rows=3,cols=5;int baseA[][] = new int[rows][cols];//要排序的数组public void sortByCol(int n){//按第n列排序 //取出第n列的数据 int sortByA[] = new int[rows]; for(int i=0;i<rows;i++){ sortByA[i] = baseA[i][n]; } //对第n列进行排序,生成index数组 int j=0,min=0; int indexA[]= new int[rows]; for(int i=0;i<rows;i++){ min=sortByA[i]; for(int k=i;k<rows;k++){ if(min>sortByA[k]){ min=sortByA[k]; index[i]=k; } } } //便于排序,把数据复制到另一个数组里 int tempA[][]=new int[rows][cols]; for(int i=0;i<rows;i++){ for(int j=0;j<rows;j++){ tempA[i][j]=baseA[i][j]; } } //按照index数组,对base数组重新赋值 for(int i=0;i<rows;i++){ for(int j=0;j<cols;j++){ int s=index[i]; baseA[i][j]=tempA[s][j]; } }} 没有时间调试,整体思路和楼上的差不多. 弱弱的问一句,我怎么把action里的一个数组传递到JSP页面 关于垃圾回收的问题 求解,cpu的使用 3维数据存储与快速定位的讨论,很有用的哦! java 如何向单行文本框中追加内容 有人用过derby数据库吗? 请问谁有javaScript教程 在线等 急,求救!!!!在线等待!!!!!!!!! 为什么Java的DOS命令使用不了 一个关于小程序和应用程序的问题 散分啦,大家~!j2sdkee1.2.1下cloudscape的cloudview打开方法 如何将JProbe Suite 4.0与Tomcat4.0.3集成
也是最容易理解的方法。
public void sortByCol(int n){//按第n列排序
//取出第n列的数据
int sortByA[] = new int[rows];
for(int i=0;i<rows;i++){
sortByA[i] = baseA[i][n];
}
//对第n列进行排序,生成index数组
int j=0,min=0;
int indexA[]= new int[rows];
for(int i=0;i<rows;i++){
min=sortByA[i];
for(int k=i;k<rows;k++){
if(min>sortByA[k]){
min=sortByA[k];
index[i]=k;
}
}
}
//便于排序,把数据复制到另一个数组里
int tempA[][]=new int[rows][cols];
for(int i=0;i<rows;i++){
for(int j=0;j<rows;j++){
tempA[i][j]=baseA[i][j];
}
}
//按照index数组,对base数组重新赋值
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
int s=index[i];
baseA[i][j]=tempA[s][j];
}
}
}