如何找到Java中的排序排列 [英] How to find the permutation of a sort in Java

查看:183
本文介绍了如何找到Java中的排序排列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

欲数组排序,找到每个元素的索引中的排序顺序。 因此,举例来说,如果我运行这个阵列上:

I want to sort an array and find the index of each element in the sorted order. So for instance if I run this on the array:

[3,2,4]

我会得到:

[1,0,2]

有没有一种简单的方法来做到这一点在Java中?

Is there an easy way to do this in Java?

推荐答案

让我们假设你的元素存储在数组中。

Let's assume your elements are stored in an array.

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 [] 有一个足够简单的循环。

Now indices contains the indices of the array, in their sorted order. You can convert that back to an int[] with a straightforward enough for loop.

这篇关于如何找到Java中的排序排列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆