From 89cdf3efb49335e7c07a68a5a64657eeec2288a6 Mon Sep 17 00:00:00 2001 From: Alexander Pickering Date: Mon, 6 Feb 2017 11:41:36 -0500 Subject: Inital commit --- labs/lab05_permutation/Permutation.java | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 labs/lab05_permutation/Permutation.java (limited to 'labs/lab05_permutation/Permutation.java') diff --git a/labs/lab05_permutation/Permutation.java b/labs/lab05_permutation/Permutation.java new file mode 100644 index 0000000..b0cc541 --- /dev/null +++ b/labs/lab05_permutation/Permutation.java @@ -0,0 +1,51 @@ +import java.util.ArrayList; + + +public class Permutation +{ + public static ArrayList> permutation(final ArrayList olist) + { + ArrayList list = new ArrayList(); + for(Integer i : olist) + { + list.add(i); + } + //System.out.println("[ME]Permutateing " + list); + ArrayList> output = new ArrayList>(); + //System.out.println("[ME] Size is " + list.size()); + if(list.size() <= 1) + { + output.add(list); + } + + else + { + ArrayList newlist = list; + for(Integer i=0; i < list.size(); i++) + { + //System.out.println("[ME]First element for this permutation is " + newlist.get(0)); + Integer firstEntry = newlist.remove(0); + for(ArrayList l : permutation(newlist)) + { + //System.out.println("[ME]This arraylist" + l); + ArrayList tmp1 = new ArrayList(); + //ArrayList tmp2 = new ArrayList(); + tmp1.add(firstEntry); + for(Integer i2 : l) + { + tmp1.add(i2); + //tmp2.add(i2); + } + //tmp2.add(firstEntry); + //System.out.println("[ME] This full permutation is " + tmp1 + ", i is " + i + " and size is " + list.size()); + output.add(tmp1); + //output.add(tmp2); + } + newlist.add(firstEntry); + } + } + + //System.out.println("[ME] Returning " + output); + return output; + } +} -- cgit v1.2.3-70-g09d2