Jestem poczatkujacym w javie i chcialem napisac algorytm sortowania wlasnej roboty, ale nie wiedziec czemu nie wykonuje on jednej instrukcji. Nie mam pojecia dlaczego, prosze o pomoc. Po wpisaniu liczb 2, 1, 4, 5, 3, po pierwszej petli wychodzi wynik 1, 1, 4, 5, 3, zaś po drugiej 1, 1, 4, 3, 3, a po trzeciej ostatniej 1, 1, 3, 3, 3.
import java.util.Scanner;
public class sorting {
public static void main(String [] args) {
int[] zbiorLiczb = new int[5]; //tablica glowna
int[] pomocnik; //tablica pomocnicza
boolean czyKoniec = false; //warunek konca petli while
for (int i = 0; i <= 4; i++) { //wpisywanie liczb do glownej tablicy
zbiorLiczb[i] = getInt();
}
pomocnik = zbiorLiczb; //klon tablicy glownej
while (czyKoniec == false) {
for (int i = 0; i <= 4; i++) { //sortowanie od najmniejszej do najwiekszej
if (i == zbiorLiczb.length - 1) { //ostatni element tablicy zostaje pominiety
break;
} else {
if (zbiorLiczb[i] > zbiorLiczb[i + 1]) { //sprawdzanie czy nastepna liczba jest wieksza od poprzedniej
pomocnik[i] = zbiorLiczb[i + 1]; //ustalanie poprawnej kolejnosci w tablic pomocniczej
pomocnik[i + 1] = zbiorLiczb[i]; //(instrukcja nie chce sie wykonac lub zostaje nadpisana)||| jezeli nastepna //liczba jest mniejsza od poprzedniej to zamieniane sa miejscami
break;
} else {
pomocnik[i] = zbiorLiczb[i]; //jezeli kolejnosc jest poprawna nic sie nie zmienia
}
}
}
for (int i = 0; i <= 4; i++) { //sprawdza czy to juz koniec algorytmu
if (i == zbiorLiczb.length - 1) { //sprawdza poprawnosc kolejnosci pomijajac ostatni element
break;
} else {
if (pomocnik[i] <= pomocnik[i + 1]) {
czyKoniec = true;
} else {
czyKoniec = false;
break;
}
}
}
zbiorLiczb = pomocnik; //zapisywanie zmian w tabeli glownej
for (int i = 0; i<=4; i++) { //wypisanie aktualnej kolejnosci
System.out.print(pomocnik[i] + ", ");
}
System.out.println("kolejna runda");
}
for (int i = 0; i <= 4; i++) { //wypisywanie liczb ostatecznych
System.out.println(pomocnik[i]);
}
}
public static int getInt() {
return new Scanner(System.in).nextInt();
}
}