Java数组排序:获取数组索引排序列表的快速方法
2022-09-01 02:19:12
问题:考虑以下浮点数[]:
d[i] = 1.7 -0.3 2.1 0.5
我想要的是一个int[]数组,它表示具有索引的原始数组的顺序。
s[i] = 1 3 0 2
d[s[i]] = -0.3 0.5 1.7 2.1
当然,这可以通过自定义比较器,一组排序的自定义对象来完成,或者简单地对数组进行排序,然后在原始数组中搜索索引(颤抖)。
事实上,我正在寻找的是Matlab排序函数的第二个返回参数的等效项。
有没有一种简单的方法来做到这一点(<5 LOC)?是否有不需要为每个元素分配新对象的解决方案?
更新:
感谢您的回复。不幸的是,到目前为止,所提出的任何建议都与我所希望的简单有效的解决方案相似。因此,我在JDK反馈论坛中打开了一个线程,建议添加一个新的类库函数来解决这个问题。让我们看看Sun/Oracle对这个问题的看法。
http://forums.java.net/jive/thread.jspa?threadID=62657&tstart=0