public class SelectionSort {

    public static void sort(int numbers[]) {
        int i, j;
        for (i = 0; i < numbers.length - 1; ++i) {

            // Find index of smallest remaining element
            int indexSmallest = i;
            for (j = i + 1; j < numbers.length; ++j) {

                if (numbers[j] < numbers[indexSmallest]) {
                    indexSmallest = j;
                }
            }

            // Swap numbers[i] and numbers[indexSmallest]
            int temp = numbers[i];
            numbers[i] = numbers[indexSmallest];
            numbers[indexSmallest] = temp;

            // output the array after each round
            System.out.print("Round " + (i+1) + ": ");
            for (j = 0; j < numbers.length; ++j) {
                System.out.print(numbers[j] + " ");
            }
            System.out.println();
        }
    }

}
