summaryrefslogtreecommitdiff
path: root/labs/lab05_permutation/Permutation.java
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2017-02-06 11:41:36 -0500
committerAlexander Pickering <alexandermpickering@gmail.com>2017-02-06 11:41:36 -0500
commit89cdf3efb49335e7c07a68a5a64657eeec2288a6 (patch)
treecdc0fd8165e65b1637fa54cac11c932acefc8a89 /labs/lab05_permutation/Permutation.java
downloadcoe0445-89cdf3efb49335e7c07a68a5a64657eeec2288a6.tar.gz
coe0445-89cdf3efb49335e7c07a68a5a64657eeec2288a6.tar.bz2
coe0445-89cdf3efb49335e7c07a68a5a64657eeec2288a6.zip
Inital commitHEADmaster
Diffstat (limited to 'labs/lab05_permutation/Permutation.java')
-rw-r--r--labs/lab05_permutation/Permutation.java51
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;
+ }
+}