如何在Java中找到排序的排列
作者:互联网
我想对数组进行排序,并按排序顺序查找每个元素的索引.
例如,如果我在数组上运行它:
[3,2,4]
我得到:
[1,0,2]
在Java中有一种简单的方法吗?
解决方法:
我们假设您的元素存储在一个数组中.
final int[] arr = // elements you want
List<Integer> indices = new ArrayList<Integer>(arr.length);
for (int i = 0; i < arr.length; i++) {
indices.add(i);
}
Comparator<Integer> comparator = new Comparator<Integer>() {
public int compare(Integer i, Integer j) {
return Integer.compare(arr[i], arr[j]);
}
}
Collections.sort(indices, comparator);
现在,索引按其排序顺序包含数组的索引.您可以将其转换回int [],并且具有足够简单的for循环.
标签:array-algorithms,java,sorting,algorithm 来源: https://codeday.me/bug/20191008/1869882.html