sortowanie tablicy

0

Witam.

Mam problem za zapisaniem kody do sortowania wartości w tablicy jednowymiarowej. Przy podaniu wartości pomija mi wartość ostatnią ponieważ j wskazuje już indeks w którym nie ma wartośc i i wyskakuje błąd w Eclipse "java.lang.ArrayIndexOutOfBoundsException".
Poniżej zapis:

int[] array = new int[]{4,1,5,7};
int i=0, j=1, temp=0;
while(i<4){
if (array[i]>array[j]){
   temp=array[i];
   array[i]=array[j];
   array[j]=temp;
}
i++;
j++
}

Efektem działania powyższego sortowania jest praktycznie przesunięcie tylko najmniejszej wartości w tablic tj. 1 na indeks 0. Problem pojawia się w momencie gdy j=4.

Z góry dzięki za podpowiedzi.

0

A to jest jakieś zadanie że sam masz algorytm sortowania stworzyć?. Nie lepiej po prostu skorzystać z gotowej funkcji sort ? :

int[] liczby = {120, 1, 0, 999, 77};
Arrays.sort(liczby);
System.out.println(Arrays.toString(liczby));

i w konsoli powinno ci wypisać:
[0, 1, 77, 120, 999]

0

Ten kod robi dokładnie to do zakodowałeś. W warunku pętli sprawdzasz tylko ograniczenie dla i < 4, a tymczasem kiedy i == 3, to j ==4, a takiego elementu w 4-elementowej tablicy nie ma.

0

OK. Nie wiedziałem że jest metoda do sortowania. Właśnie takie było zadania tzn. stworzyć prosty algorytm który sortuje liczby rosnąco.
thx

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