Сортировка массива методом прямого выбора на Java

Описание метода

Описание взято из книги "Алгоритмы и Струкуры данных" Никлаус Вирт :
Этот прием основан на следующих правилах:

Анализ прямого выбора. Число сравнений ключей (С), очевидно, не зависит от начального порядка ключей. Для С имеем:
C=(n²-n)/2

Краткое описание алгоритма

На вход передается массив из целых чисел. В функции sortArray за минимальный элемент берется первый элемент массива. И далее этот элемент сравнивается со всеми идущими после него элементами. Если элемент меньше, чем текущий минимальный, то элементы массива меняются местами. Таким образом на первом месте ( с индексом 0) становится наименьший элемент из всего массива. Далее за минимальный берется второй элемент массива и опять сравнивается со всеми оставшимися и т.д.

Описание входных данных

В выполняемом файле MainClass.java в статическую функцию sortArray класса Sorting передается массив целых чисел. Этот массив сортируется по-убыванию. Так как каждый массив является ссылкой, создавать дополнительную копию данных не требуется. Элементы меняются напрямую в исходном массиве.

Текст программы с комментариями:

Класс Sorting содержит методы для сортировки массива целых чисел.

/**Класс для сортировки целочисленных массивов
 * Реализует алгоритм прямого выбора
 * @author Shpatserman Maria
 * @version 1.1 27.10.2010
 */
public class Sorting {
    /**Метод сортировки массива по возрастанию
     * @param array массив для сортировки
     * 
     */
    static void sortArray(int[] array){

        for (int i=0;i<(array.length-1);i++){
            int minimumItem = array[i];
            //Сравниваем элементы по индексу i и i+1, если второй меньше, то меняем их местами
            checkItemsWithMinimum(minimumItem,i,i+1,array);
            
        }
    }
    /**вспомогательный метод, для сравнения и перестановки элементов массива местами
     */
    private static void checkItemsWithMinimum(int minimum,int minindex,int index,int[] array){
        for(int i=index;i<array.length;i++){           
            if (minimum > array[i]){               
               array[minindex]=array[i];
               array[i]=minimum;
               minimum=array[minindex];
                           
            }
        }
    }
    /**Метод позволяющий вывести все элементы массива
     *
     * @param array массив для вывода
     */
    static void printArray(int[] array){
        System.out.println("printArray");
        for(int i=0;i<array.length;i++){
            System.out.println("i = "+ i+" array[i] = "+array[i]);
        }
    }
}

Пример вызова класса Sorting из выполняемого класса MainClass.

/**Тестовый класс для вызова метода сортировки
 *
 * @author Shpatserman Maria
 */
public class MainClass {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Тестовый массив целых чисел
        int[] testArray = new int[] {-5,1,17,33,1,355,7,88,90,12,3,4,0,12};
        Sorting.sortArray(testArray);
        Sorting.printArray(testArray);            

    }
}

Исходный текст программы: Sorting.java.
Пример выполняемого класса: MainClass.java.