java 排序问题

骑猪去东莞 2010-03-31 12:35:18
例如:一个整型数组a[]={1,3,3,5,7,4,2,6,8};
排序(升序)后:a[]={1,2,3,3,4,5,6,7,8};
排序前下标为: 0 1 2 3 4 5 6 7 8
排序后原下标为:0 6 1 2 5 3 7 4 8或0 6 2 1 5 3 7 4(求出任意一个即可)
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dazzlingwinter 2010-03-31
  • 打赏
  • 举报
回复

public class ArraysSort {
public static void main(String[] args) {
int[][] a = new int[2][];
a[0] = new int[]{1,3,3,5,7,4,2,6,8};
a[1] = new int[a[0].length];
for(int i=0; i<a[1].length; i++) {
a[1][i] = i;
}

sort(a);

for(int i=0; i<a[1].length; i++) {
System.out.print(a[1][i] + "\t");
}
}

public static void sort(int[][] a) {
for(int i=0; i<a[0].length-1; i++) {
int changeIndex = i;
for(int j=i+1; j<a[0].length; j++) {
if(a[0][changeIndex] > a[0][j]) {
changeIndex = j;
}
}
if(i != changeIndex) {
a[0][i] ^= a[0][changeIndex];
a[0][changeIndex] ^= a[0][i];
a[0][i] ^= a[0][changeIndex];

a[1][i] ^= a[1][changeIndex];
a[1][changeIndex] ^= a[1][i];
a[1][i] ^= a[1][changeIndex];
}
}
}
}
/*
0 6 2 1 5 3 7 4 8
*/
chen5567799 2010-03-31
  • 打赏
  • 举报
回复
楼上 正解...
水中影子 2010-03-31
  • 打赏
  • 举报
回复
使用TreeSet排序
kbyst 2010-03-31
  • 打赏
  • 举报
回复
使用map

key为下标,value为数值
水中影子 2010-03-31
  • 打赏
  • 举报
回复

int a[]={1,3,3,5,7,4,2,6,8};
TreeSet ts=new TreeSet();
for(int i=0;i<a.length;i++){
ts.add(a[i]);
}
Iterator itr=ts.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}

------结果
1 2 3 4 5 6 7 8

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧