排序问题

对数组排序
int[] a={3,4,0,2,1}
排序之后,怎么才能返回原有下标?
0 1 2 3 4 对应原来的下标是 2,4,3,0,1(怎么获取)

你可以用map来保存数据对应的下标

自己先遍历一遍
key为数组的第一项数据,value为下标,

最简单就是排序之前用个hashMap记下原来的下标

似乎Map用问题,如果数组中用重复数据呢。

LS,重复的可以把KEY(值) 与VALUE(下标) 调换一下不就OK
下标是不会重复的。

用另一个数组或集合存下标不行咩?

搞不懂,要获取原来的下标,你新创建一个一样数组,对新的排序不就可以了,老的顺序还在

用另一个数组保存它的下标,当你把值移动时也把下标也移动,
a={3,4,0,2,1}
b={0,1,2,3,4}
当交换a中的4,0是,把b的1,2也交换

排序过程中 建立一个数组 保存相应下标就可以了