21
Июл
2021

Пузырьковая сортировка по книге Р. Лафоре

Есть реализация пузырьковой сортировки по книге Лафоре "Структуры данных и алгоритмы JAVA":

class ArrayBub {
private long[] a;
private int nElems;
public ArrayBub(int max) {
    a = new long[max];
    nElems = 0;
}
public void insert(long value) {
    a[nElems] = value;
    nElems++;
}
public void display() {
    for(int j=0; j<nElems; j++)
        System.out.print(a[j] + " ");
    System.out.println("");
}
public void bubbleSort() {
    int out, in;

    for(out=nElems-1; out>1; out--)
        for(in=0; in<out; in++)
            if( a[in] > a[in+1] )
                swap(in, in+1);
}
private void swap(int one, int two) {
    long temp = a[one];
    a[one] = a[two];
    a[two] = temp;
}}

class BubbleSortApp {
public static void main(String[] args) {
    int maxSize = 100;
    ArrayBub arr;
    arr = new ArrayBub(maxSize);

    arr.insert(77);
    arr.insert(99);
    arr.insert(44);
    arr.insert(55);
    arr.insert(22);
    arr.insert(88);
    arr.insert(11);
    arr.insert(00);
    arr.insert(66);
    arr.insert(33);

    arr.display();
    arr.bubbleSort();
    arr.display();
}}

но она не сортирует массив со значениями - [3, 2, 1] - ответ: [2, 3, 1].

Помогите пожалуйста разобраться в чем подвох?

Источник: https://ru.stackoverflow.com/questions/1307424/%D0%9F%D1%83%D0%B7%D1%8B%D1%80%D1%8C%D0%BA%D0%BE%D0%B2%D0%B0%D1%8F-%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0-%D0%BF%D0%BE-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B5-%D0%A0-%D0%9B%D0%B0%D1%84%D0%BE%D1%80%D0%B5

Тебе может это понравится...

Добавить комментарий