From f39092526dddc24ca3a8e4dec405ef210008078b Mon Sep 17 00:00:00 2001 From: jmaguire Date: Mon, 13 Apr 2009 12:14:53 +0000 Subject: [PATCH] Added function RandomSubset git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@379 348d0f76-0448-11de-a6fe-93d51630548a --- .../org/broadinstitute/sting/utils/Utils.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/java/src/org/broadinstitute/sting/utils/Utils.java b/java/src/org/broadinstitute/sting/utils/Utils.java index 4b931d0bf..2eb55b4a3 100755 --- a/java/src/org/broadinstitute/sting/utils/Utils.java +++ b/java/src/org/broadinstitute/sting/utils/Utils.java @@ -372,6 +372,24 @@ public class Utils { } + /** Draw N random elements from list. */ + public static List RandomSubset(List list, int N) + { + if (list.size() <= N) { return list; } + + java.util.Random random = new java.util.Random(); + + int idx[] = new int[list.size()]; + for (int i = 0; i < list.size(); i++) { idx[i] = random.nextInt(); } + + Integer[] perm = SortPermutation(idx); + + List ans = new ArrayList(); + for (int i = 0; i < N; i++) { ans.add(list.get(perm[i])); } + + return ans; + } + /* TEST ME public static void main(String[] argv) { List l1 = new LinkedList();