Błąd w algorytmie quick sort

0

Hej, miałem napisać rekurencyjnego quicksorta, ale coś mi nie działa, wyrzuca wyjatek, dlaczego...?


public static void quickSort(int[] arr, int beg, int end) {
        if (beg < end) {
            int i = beg - 1, j = end + 1, pivot = arr[(beg + end) / 2];
            
            while (true) {
                while (pivot > arr[++i]);
                while (pivot < arr[--j]);
                
                if (i <= j) {
                    swap(arr[i], arr[j]);
                }
                else {
                    break;
                }
            }
            
            if (j > beg) {
                quickSort(arr, beg, j);   
            }
            if (i < end) {
                quickSort(arr, i, end);   
            }
        }
    }

1
  1. Jaki wyjątek
  2. Jakie dane wprowadzasz
  3. Rozwijająć punkt 3, pokaż cały kod bo w tym widzę już metodę swap(), której kodu nie dodałeś
0

Zauważyłem teraz, że mój swap nie działa, napisałem go tak głupio, bo zapomniałem że to Java i że wszystko jest przez wartość

public static <T> void swap(T obj1, T obj2) {
        T temp = obj1;
        obj1 = obj2;
        obj2 = temp;
}

Jak to poprawić, aby zamieniało liczby?

0

DOBRA NAPRAWIŁEM SWAP"A DZIĘKI @0xmarcin, NIESTETY NIE MOGĘ MU POLAJKOWAĆ BO DAŁ W KOMENTARZU :(

Można zamknąć

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