added generic SortPermutation that returns sorting permutation for arbitrary List<T> as long as T is Comparable

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@144 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
asivache 2009-03-22 20:40:26 +00:00
parent 09d605bb37
commit 38f18c8679
1 changed files with 21 additions and 0 deletions

View File

@ -280,6 +280,27 @@ public class Utils {
return permutation;
}
public static <T extends Comparable> Integer[] SortPermutation( List<T> A )
{
final Object[] data = A.toArray();
class comparator implements Comparator<Integer>
{
public int compare(Integer a, Integer b)
{
return ((T)data[a]).compareTo(data[b]);
}
}
Integer[] permutation = new Integer[A.size()];
for (int i = 0; i < A.size(); i++)
{
permutation[i] = i;
}
Arrays.sort(permutation, new comparator());
return permutation;
}
public static int[] PermuteArray(int[] array, Integer[] permutation)
{
int[] output = new int[array.length];