Lecture Notes on 26 Jul 2013 public static void allSubstrings (String s) { int window = s.length(); while (window > 0) { int start = 0; while ((start + window) <= s.length()) { System.out.println (s.substring(start, start + window)); start++; } window--; } } public class Permute { public static void printArray (int[] a) { for (int i = 0; i < a.length; i++) { System.out.print (a[i] + " "); } System.out.println(); } public static void swap (int[] a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } public static void permute (int[] a, int k) { if (k == a.length - 1) { printArray (a); } else { for (int i = k; i < a.length; i++) { swap (a, k, i); permute (a, k + 1); swap (a, i, k); } } } public static void main (String[] args) { int[] a = {1, 2, 3, 4}; permute (a, 0); } }