Вопрос... В данной задаче я решил использовать сортировку пузырьком в методе public static void sort(String[] array) , так как в условии требуется использовать метод public static boolean isGreaterThan(String a, String b). Но когда я запускаю код в IDEA у меня бесконечный цикл ввода строк, хотя я никак не трогал цикл находящийся в main отвечающий за ввод 20 строк... Интересно то, что когда я убрал сортировку пузырьком, а воспользовался более приемлемым методом: Arrays.sort(array); - Цикл отвечающий за ввод строк работает нормально, т.е. дает ввести всего 20 строк. Это какой то баг? Или каким-то неизвестным образом цикл в методе public static void sort(String[] array) влияет на цикл в main?
package com.javarush.task.task08.task0830;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

/*
Задача по алгоритмам
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] array = new String[20];
        for (int i = 0; i < array.length; i++) {
            array[i] = reader.readLine();
        }

        sort(array);

        for (String x : array) {
            System.out.println(x);
        }
    }

    public static void sort(String[] array) {
        //напишите тут ваш код

        for (int k = array.length - 1; k > 0; k--){
            for (int j=0; j < k; k++){
                if (isGreaterThan(array[j],array[j+1])){
                    String tmp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = tmp;
                }
            }
        }
    }

    //Метод для сравнения строк: 'а' больше чем 'b'
    public static boolean isGreaterThan(String a, String b) {

        return a.compareTo(b) > 0;
    }
}