Вот код сортировки, работает правильно:
public static void sort(String[] array) {
        for (int i=0; i < array.length; i++) {
            for (int j = 0; j < array.length; j++) {
                if (isNumber(array[i]) && isNumber(array[j])) {
                    if (Integer.parseInt(array[i]) > Integer.parseInt(array[j])) {  // если значение под array[i] > array[j] , то
                        String tmp = array[i];
                        array[i]=array[j]; // то в i заносим значение меньше его(j)
                        array[j]=tmp;
                    }
                }
Как же так получается что в if мы заходим, когда значение под array[i] > array[j] и меняем местами, а результат выходит от большего к меньшему. Объясните, пожалуйста.