From 38f18c86796217b6ed71ffd7f8fcc1d69743baab Mon Sep 17 00:00:00 2001 From: asivache Date: Sun, 22 Mar 2009 20:40:26 +0000 Subject: [PATCH] added generic SortPermutation that returns sorting permutation for arbitrary List as long as T is Comparable git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@144 348d0f76-0448-11de-a6fe-93d51630548a --- .../org/broadinstitute/sting/utils/Utils.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/core/java/src/org/broadinstitute/sting/utils/Utils.java b/core/java/src/org/broadinstitute/sting/utils/Utils.java index 791d01036..fe8aefe84 100755 --- a/core/java/src/org/broadinstitute/sting/utils/Utils.java +++ b/core/java/src/org/broadinstitute/sting/utils/Utils.java @@ -280,6 +280,27 @@ public class Utils { return permutation; } + public static Integer[] SortPermutation( List A ) + { + final Object[] data = A.toArray(); + + class comparator implements Comparator + { + 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];