一个数组dataArray[m] 里有m个数字,要求按数字从小到达排列的数字下标储存在新的数组中 indexArray[n]中_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 一个数组dataArray[m] 里有m个数字,要求按数字从小到达排列的数字下标储存在新的数组中 indexArray[n]中

一个数组dataArray[m] 里有m个数字,要求按数字从小到达排列的数字下标储存在新的数组中 indexArray[n]中

 2013/10/28 0:58:03  yuhongbo123456  程序员俱乐部  我要评论(0)
  • 摘要:packageorg.crazyit.app.action;importjava.util.HashMap;importjava.util.Map;publicclassTest{publicstaticvoidmain(String[]args){//01234Integer[]dataArray={23,43,21,22,32};//23041Integer[]indexArray=newInteger[dataArray.length];Test.sort(dataArray
  • 标签:数组 一个
package org.crazyit.app.action;

import java.util.HashMap;
import java.util.Map;

public class Test {
public static void main(String[] args) {
           //    0  1  2  3  4
Integer[] dataArray={23,43,21,22,32};
           //    2  3  0  4  1
Integer[] indexArray=new Integer[dataArray.length];
Test.sort(dataArray, indexArray);
for(int i=0;i<indexArray.length;i++){
  System.out.println(indexArray[i]);
}
}

public static Integer[] sort(Integer[] dataArray,Integer[] indexArray){
int temp=0;
Map<Integer,Integer> map=new HashMap<Integer,Integer>();

for(int i=0;i<dataArray.length;i++){
map.put(dataArray[i],i);
}

for(int i=0;i<dataArray.length-1;i++){
for(int j=0;j<dataArray.length-1;j++){
if(dataArray[j]>dataArray[j+1]){
temp=dataArray[j];
dataArray[j]=dataArray[j+1];
dataArray[j+1]=temp;
}
  }
}
//根据map的键值对取值
for(int i=0;i<indexArray.length;i++){
indexArray[i]=map.get(dataArray[i]);
}

return indexArray;

}

}
发表评论
用户名: 匿名