12,11,18的排序你会不会?得到一个排序索引值,如12(0),11(1),18,(2)排序后得到11(1),12(0),18(2),括号内为索引。然后根据索引交换一下数组的行就行了!
解决方案 »
- 求助java.io.streamcorruptedException问题
- java 返回系统当前时间
- 用BigDecimal类做除法运算问题
- 关于执行java的批处理
- 问题: 在JPanel上由鼠标可以添加TextArea, 可以随意拖动.
- 高分! java高手请进 怎么样实现 监听readLine() 如果超过一定时间没有读到信息 就结束readLine()
- java中有那些部分是非纯面向对象的?
- 谁知道 jsp web 编程指南的电子书籍在哪下载!!!急!!!
- java 里可以定义返回动态数组的函数么?怎么实现的?
- 关于import的问题
- 散分啦,大家~!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];
}
}
}