编程语言
首页 > 编程语言> > 如何在Java中找到排序的排列

如何在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