Сортировка "пузырьком" на Java

Сортировка "пузырьком" (Bubble sort) - это самый простой алгоритм сортировки, он сравнивает первые два элемента, если первый больше второго, меняет их местами, продолжает выполнять (сравнивает и меняет местами) следующую пару смежных элементов. Затем он начинается снова с первых двух элементов, сравнивает, переставляет, пока не потребуется перестановка.

Вот пример реализации сортировки "пузырьком" на Java.

public static int[] sort(int[] data) {

    int dataLength = data.length;
    int swap;
    boolean sorted;

    for (int i = 0; i < dataLength; i++) {

        sorted = true;

        for (int a = 1; a < (dataLength - i); a++) {

            if (data[a - 1] > data[a]) {
                swap = data[a - 1];
                data[a - 1] = data[a];
                data[a] = swap;
                sorted = false;
            }

        }

        // если отсортировано - выходим, пропуская ненужный цикл.
        if (sorted) break;
    }

    return data;
}

Опробуем его с тестовыми данными.

package Bubble;

public class Main {
    public static void main (String[] args) {
        int[] data = {33, 22, 44, 88, 11, 77};

        String sorted = "";
        for (int el : sort(data)) {
            sorted += String.valueOf(el)+" ";
        }
        System.out.println(sorted);
    }

    public static int[] sort(int[] data) {

        int dataLength = data.length;
        int swap;
        boolean sorted;

        for (int i = 0; i < dataLength; i++) {

            sorted = true;

            for (int a = 1; a < (dataLength - i); a++) {

                if (data[a - 1] > data[a]) {
                    swap = data[a - 1];
                    data[a - 1] = data[a];
                    data[a] = swap;
                    sorted = false;
                }

            }

            // если отсортировано, выходим, пропуская ненужный цикл.
            if (sorted) break;
        }

        return data;
    }
}

Вывод:

11 22 33 44 77 88 

Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки