Sortowanie przez wstawianie - gdzie jest błąd?

0

Witam, przepisałem pseudokod z książki, jednak nie działa poprawnie. Nie mogę znaleźć błędu.
W funkcji losuj losuję zadaną liczbę (zmienna ile) losowych cyfr i dodaje je do listy i następnie wywołuję inseritonsort.

public void insertionsort() {
        int klucz, i, temp;
        for (int j = 1; j < ile; j++) {
            klucz = (int) (lista.get(j));
          
            i = j - 1;
            while (i >=0 && (int) lista.get(i) > klucz) {
                temp = (int) lista.get(i);
                lista.add(i + 1, temp);
                i = i - 1;
                lista.add(i + 1, klucz);
            }

        }

dodanie znacznika <code class="java"> - fp

1

Porównaj sobie Twoją wersję z pseudokodem na Wiki - szczególnie fragment 5..8.

0

Dziękuję, działa :)

0

Witam ponownie, tym razem mam mały problem dotyczący wizualizacji sortowania.
Jestem w stanie narysować pionowe odcinki już posortowane, lub po wykonaniu jednego kroku.
Chciałbym, aby zmiany były widoczne w czasie rzeczywistym.
Byłbym bardzo wdzięczny, gdyby ktoś mógłby zerknąć i naprowadzić mnie na właściwy trop.

https://github.com/diasdj/Lista1/

Wiem, że muszę rysować bieżący stan listy podczas sortowania i wykonywać metodę repaint(). Tylko nie wiem dokładnie jak to zrobić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1