Search code examples
javaalgorithmpermutation

Java algorithm for all-pairs


Given a collection of integers, what's a Java algorithm that will give all pairs of items as follows..

Given the example collection: [1,3,5], we'd want the output:

[1-1]
[3-3]
[5-5]

[1-3]
[1-5]
[3-5]

Note that ordering is not important, so we want one of [1-3], [3-1] but not both.

This should work with a collection of n numbers, not just the the three numbers as in this example.


Solution

  • Below function should do this

      private void printPermutations(int[] numbers) {
        for(int i=0;i<numbers.length; i++) {
          for (int j=i; j<numbers.length; j++) {
            System.out.println("[" + numbers[i] + "-"+ numbers[j] +"]");
          }
        }
      }
    

    Example call to this function

    int[] numbers={1,2,3};
    printPermutations(numbers);