fork(1) download
  1. import java.util.Scanner;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4.  
  5. class Permute {
  6.  
  7. public static void main(String[] args) {
  8. System.out.println("Enter the numbers separated by spaces: ");
  9. Scanner sc = new Scanner(System.in);
  10. ArrayList<Integer> input = new ArrayList();
  11. String line = sc.nextLine();
  12. String[] splits = line.split(" ");
  13. for (int i = 0; i < splits.length; i++) {
  14. input.add(Integer.parseInt(splits[i]));
  15. }
  16. // System.out.println(input.toString());
  17. // System.out.println(new Date().getTime());
  18. permute(input);
  19. // System.out.println(new Date().getTime());
  20. }
  21.  
  22. public static void permute(ArrayList<Integer> input) {
  23. long start = new Date().getTime();
  24. ArrayList<ArrayList<Integer>> permutations = new ArrayList();
  25. permutations.add(new ArrayList<Integer>());
  26. for (int i = 0; i < input.size(); i++) {
  27. int element = input.get(i);
  28. //System.out.print(element + ":");
  29. ArrayList<ArrayList<Integer>> temp = new ArrayList();
  30. for (int j = 0; j < permutations.size(); j++) {
  31. ArrayList<Integer> tmp = new ArrayList();
  32. tmp.addAll(permutations.get(j));
  33. for (int k = 0; k <= permutations.get(j).size(); k++) {
  34. tmp.add(k, element);
  35. temp.add(tmp);
  36. //System.out.println(tmp + " " + permutations.get(j));
  37. tmp = new ArrayList();
  38. tmp.addAll(permutations.get(j));
  39. }
  40. }
  41. permutations = temp;
  42. }
  43. long end = new Date().getTime();
  44. System.out.println("Total permutations = " + permutations.size());
  45. System.out.println("Time taken = " + (end-start)+ "ms.");
  46. System.out.println(permutations.toString());
  47. }
  48. }
Success #stdin #stdout 0.06s 246144KB
stdin
1 2 3 4 5
stdout
Enter the numbers separated by spaces: 
Total permutations = 120
Time taken = 1ms.
[[5, 4, 3, 2, 1], [4, 5, 3, 2, 1], [4, 3, 5, 2, 1], [4, 3, 2, 5, 1], [4, 3, 2, 1, 5], [5, 3, 4, 2, 1], [3, 5, 4, 2, 1], [3, 4, 5, 2, 1], [3, 4, 2, 5, 1], [3, 4, 2, 1, 5], [5, 3, 2, 4, 1], [3, 5, 2, 4, 1], [3, 2, 5, 4, 1], [3, 2, 4, 5, 1], [3, 2, 4, 1, 5], [5, 3, 2, 1, 4], [3, 5, 2, 1, 4], [3, 2, 5, 1, 4], [3, 2, 1, 5, 4], [3, 2, 1, 4, 5], [5, 4, 2, 3, 1], [4, 5, 2, 3, 1], [4, 2, 5, 3, 1], [4, 2, 3, 5, 1], [4, 2, 3, 1, 5], [5, 2, 4, 3, 1], [2, 5, 4, 3, 1], [2, 4, 5, 3, 1], [2, 4, 3, 5, 1], [2, 4, 3, 1, 5], [5, 2, 3, 4, 1], [2, 5, 3, 4, 1], [2, 3, 5, 4, 1], [2, 3, 4, 5, 1], [2, 3, 4, 1, 5], [5, 2, 3, 1, 4], [2, 5, 3, 1, 4], [2, 3, 5, 1, 4], [2, 3, 1, 5, 4], [2, 3, 1, 4, 5], [5, 4, 2, 1, 3], [4, 5, 2, 1, 3], [4, 2, 5, 1, 3], [4, 2, 1, 5, 3], [4, 2, 1, 3, 5], [5, 2, 4, 1, 3], [2, 5, 4, 1, 3], [2, 4, 5, 1, 3], [2, 4, 1, 5, 3], [2, 4, 1, 3, 5], [5, 2, 1, 4, 3], [2, 5, 1, 4, 3], [2, 1, 5, 4, 3], [2, 1, 4, 5, 3], [2, 1, 4, 3, 5], [5, 2, 1, 3, 4], [2, 5, 1, 3, 4], [2, 1, 5, 3, 4], [2, 1, 3, 5, 4], [2, 1, 3, 4, 5], [5, 4, 3, 1, 2], [4, 5, 3, 1, 2], [4, 3, 5, 1, 2], [4, 3, 1, 5, 2], [4, 3, 1, 2, 5], [5, 3, 4, 1, 2], [3, 5, 4, 1, 2], [3, 4, 5, 1, 2], [3, 4, 1, 5, 2], [3, 4, 1, 2, 5], [5, 3, 1, 4, 2], [3, 5, 1, 4, 2], [3, 1, 5, 4, 2], [3, 1, 4, 5, 2], [3, 1, 4, 2, 5], [5, 3, 1, 2, 4], [3, 5, 1, 2, 4], [3, 1, 5, 2, 4], [3, 1, 2, 5, 4], [3, 1, 2, 4, 5], [5, 4, 1, 3, 2], [4, 5, 1, 3, 2], [4, 1, 5, 3, 2], [4, 1, 3, 5, 2], [4, 1, 3, 2, 5], [5, 1, 4, 3, 2], [1, 5, 4, 3, 2], [1, 4, 5, 3, 2], [1, 4, 3, 5, 2], [1, 4, 3, 2, 5], [5, 1, 3, 4, 2], [1, 5, 3, 4, 2], [1, 3, 5, 4, 2], [1, 3, 4, 5, 2], [1, 3, 4, 2, 5], [5, 1, 3, 2, 4], [1, 5, 3, 2, 4], [1, 3, 5, 2, 4], [1, 3, 2, 5, 4], [1, 3, 2, 4, 5], [5, 4, 1, 2, 3], [4, 5, 1, 2, 3], [4, 1, 5, 2, 3], [4, 1, 2, 5, 3], [4, 1, 2, 3, 5], [5, 1, 4, 2, 3], [1, 5, 4, 2, 3], [1, 4, 5, 2, 3], [1, 4, 2, 5, 3], [1, 4, 2, 3, 5], [5, 1, 2, 4, 3], [1, 5, 2, 4, 3], [1, 2, 5, 4, 3], [1, 2, 4, 5, 3], [1, 2, 4, 3, 5], [5, 1, 2, 3, 4], [1, 5, 2, 3, 4], [1, 2, 5, 3, 4], [1, 2, 3, 5, 4], [1, 2, 3, 4, 5]]