Пузырьковая сортировка не работает.... чего не хватает или не так? кто в силах помочь осознать магию сортировки?
public class Solution {
    public static void main(String[] args) throws Exception {
        int[] array = new int[]{19,10,16,17,9,3,4,46,97,89,12,45,98,111,42,98,98,-9,71,-150};
        sort(array);
    }
 public static void sort(int[] array) {
        boolean isSorted = false;
        int N = array.length-1;

        while (!isSorted){
            isSorted = true;
            for (int i = N; i >=1; i--){
                for(int j = 0; j < i; j++){
                    if (array[j] > array[j+1]){
                        int temp = array[j];
                        array[j+1] = array[j];
                        array[j] = temp;
                        isSorted = false;
                    }
                }
            }
            System.out.println(Arrays.toString(array));
        }

    }
}
вывод вообще странный:
[19, 19, 19, 19, 19, 19, 19, 46, 97, 97, 97, 97, 98, 111, 111, 111, 111, 111, 111, 111]
[19, 19, 19, 19, 19, 19, 19, 46, 97, 97, 97, 97, 98, 111, 111, 111, 111, 111, 111, 111]