Java 数组元素的排序,输出排序后的序号! 注意输出是原来数组元素排序后的序号! 15

比如:-37512-31321... 比如:
-3 75 12 -3

1 3 2 1
展开
 我来答
1229638008
2012-11-05 · TA获得超过136个赞
知道答主
回答量:152
采纳率:100%
帮助的人:64万
展开全部

这个能解决你的问题 

import java.util.Arrays;

public class ArraySortDemo

{

      public static void main(String[] args )

      {

      int [] array = {-3,75,12,-3};//原数组

    getSortIndex(array);

      }

private static void getSortIndex(int[] array) 

{

  int [] array_copy =new int[array.length];//新数组  拷贝原数组  (如果不拷贝原数组在排序后被改变)

      array_copy = Arrays.copyOf(array, array.length);

     

      Arrays.sort(array);;//获取排序后的数组

         

      for (int x=0;x<array_copy.length;x++)

      {     

      for(int y=0;y<array.length;y++)

      {

      if(array_copy[x]==array[y])

      {

      System.out.print(y+1+"\t");

             break;

      }

        }         

      } 

}

     

}

效果:

死色黑鸟
2012-11-05 · 超过33用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:77.9万
展开全部
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class ACM_Main2 {

public static void main(String args[]) throws Exception {
int[] arr1={-3,75,12,-3};
int[] arr2=arr1.clone();
Map<Integer,Integer> result=new HashMap<Integer,Integer>();

// System.out.println("排序前"+Arrays.toString(arr1));
Arrays.sort(arr2);
// System.out.println("排序后"+Arrays.toString(arr2));
int index=1;
for (int data : arr2) {
if(result.get(data)==null) {
result.put(data,index++);
}
}
for (int data : arr1) {
System.out.print(result.get(data)+" ");
}
System.out.println();

}
}

//简单的写了一下 ,你要求的功能实现了。
//希望起到抛砖引玉的作用
更多追问追答
追问
能不能用数组实现?
追答
数组实现? 你是指 Arrays.sort(arr2);这个排序用数组

还是指 Map result=new HashMap(); 这个结果集用数组呢。

前者的话,找一下选择排序、冒泡排序、快速排序。
后者的话,暂时没想好,看到你这需求就想到键值对了......
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式