Artur 114 wyśw. 10-07-2025 16:40

Praca domowa 3 zad 8

8.* Sortowanie bąbelkowe: stwórz 8-elementową tablicę i wypełnij ją wybranymi przez siebie
liczbami naturalnymi (ważne, aby nie były one posortowane w żadnym porządku). Uporządkuj
elementy tablicy rosnąco stosując algorytm sortowania bąbelkowego. Algorytm wygląda następująco:
Sprawdzamy całą tablicę od końca, jeżeli trafimy na parę elementów, w której większy poprzedza
mniejszy to zamieniamy je miejscami. Po przejściu całej tablicy znów zaczynamy przeszukiwać tę
tablicę od końca. Czynność powtarzamy tak długo, aż podczas sprawdzania całej tablicy nie zajdzie
ani jedna zamiana elementów. Wówczas elementy tablicy są już posortowane rosnąco. Upewnienie się
czy zaszła jakaś zamiana elementów podczas sprawdzania tablicy realizuje się najczęściej za pomocą
zmiennej logicznej.
Przykładowy wynik działania programu dla tablicy o elementach {1, 6, 3, 8, 6, 2, 3, 4}:
Tablica przed sortowaniem: 1 6 3 8 6 2 3 4
Posortowana tablica: 1 2 3 3 4 6 6 8


// // ZADANIE 8: ?????????????????????????

// int tab[] = {1,6,3,8,6,2,3,4};
// System.out.print("Tablica przed sortowaniem: ");
// for(int i = 0; i < tab.length; i++)
// {
//         System.out.print(tab[i]+" ");
// }
// int zamiana = 0;
// System.out.print("\nPosortowana tablica: ");

// int max = tab[tab.length-1];
// for(int i = 0; i < tab.length; i++)
// {
//     //zamiana = false;
//     if(tab[tab.length-i-1] > max)
//     {
//         max = tab[tab.length-i-1];
//         // tab[tab.length-(i+1)] = tab[tab.length-i];
//         zamiana++;
//     }
//     // else if(zamiana == 0)
//     // {
//     //     break;
//     // }
//     System.out.print(zamiana+" ");
// }

Nie rozumiem jak mam działać na tych tablicach. Cały czas indeks wychodzi mi poza rozmiar tablicy nawet jak go dobrze (według mnie) dopasowuję 


Programowanie Dodaj post do ulubionych Poproś o pomoc
s.gugula 11-07-2025 21:18

Hmm, szczerze mówiąc nie widzę problemu z wychodzeniem poza rozmiar tablicy, zresztą kompilator mi nic takiego nie wypluwa, tylko po prostu sam algorytm jest źle zrealizowany. Z jakiegoś powodu wypisujesz na ekran wartość zmiennej zamiana, która z tego co widzę nijak nie ma się do elementów tablicy.


Zadzwoń teraz Dotknij, aby się ze mną skontaktować.