Доброго времени суток. Столкнулся с такой проблемой, что у меня есть массив интов, допустим 20 чисел, мне необходимо посчитать итерации, или число обменов, ну не суть, с массивом, который уже отсортирован на 25%. Я его отсортировал, просто умножив длину массива на 0.25, то есть сортируется только первая четверть. На что мне сказали что нужно сортировать не первые 25% массива, а 25% меньших чисел. Довольно трудно объяснить, но я постараюсь, то есть, если у нас по массиву из 20 чисел допустим рандомно расположены нули, то он должен отсортировать не нули из первой четверти с остальными числами, а собрать все нули, затем все единицы, пока не будет достигнута отметка в 25%. Думаю доходчиво объяснил. Подскажите пожалуйста, каким образом можно достичь этого.
Random rand = new Random();
        int[] arr = new int[20];
        int point = 0;
        int iteritsii = 0;

        for (int i = 0; i < arr.length; i++) {
            arr[i] = rand.nextInt(100);
        }

        boolean Flag1 = false;
        while (!Flag1) {
            Flag1 = true;
            for (int i = 1; i < arr.length*0.25; i++) {
                if (arr[i] < arr[i - 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i - 1];
                    arr[i - 1] = temp;
                    Flag1 = false;
                }
            }
        }

        System.out.println(Arrays.toString(arr));