diff options
| author | Alexander Pickering <alexandermpickering@gmail.com> | 2017-02-06 11:41:36 -0500 |
|---|---|---|
| committer | Alexander Pickering <alexandermpickering@gmail.com> | 2017-02-06 11:41:36 -0500 |
| commit | 89cdf3efb49335e7c07a68a5a64657eeec2288a6 (patch) | |
| tree | cdc0fd8165e65b1637fa54cac11c932acefc8a89 /labs/lab05_permutation/Permutation.java | |
| download | coe0445-master.tar.gz coe0445-master.tar.bz2 coe0445-master.zip | |
Diffstat (limited to 'labs/lab05_permutation/Permutation.java')
| -rw-r--r-- | labs/lab05_permutation/Permutation.java | 51 |
1 files changed, 51 insertions, 0 deletions
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<ArrayList<Integer>> permutation(final ArrayList<Integer> olist) + { + ArrayList<Integer> list = new ArrayList<Integer>(); + for(Integer i : olist) + { + list.add(i); + } + //System.out.println("[ME]Permutateing " + list); + ArrayList<ArrayList<Integer>> output = new ArrayList<ArrayList<Integer>>(); + //System.out.println("[ME] Size is " + list.size()); + if(list.size() <= 1) + { + output.add(list); + } + + else + { + ArrayList<Integer> 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<Integer> l : permutation(newlist)) + { + //System.out.println("[ME]This arraylist" + l); + ArrayList<Integer> tmp1 = new ArrayList<Integer>(); + //ArrayList<Integer> tmp2 = new ArrayList<Integer>(); + 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; + } +} |
