Zaprezentowany kod jest implementacją algorytmu sortowania bąbelkowego. Program sortuje elementy tablicy nierosnąco. Zmodyfikuj go tak, aby sortował elementy tablicy niemalejąco.
Przetestuj swój program dla tablicy składającej się z następujących elementów: , , , , , , , , , .
Specyfikacja problemu:
Dane:
liczby – tablica liczb naturalnych
rozmiar – liczba naturalna; rozmiar tablicy
Wynik:
liczby – tablica liczb naturalnych posortowana niemalejąco
R1TvESZqluLq41
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int liczby otwórz nawias kwadratowy 10 zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 7 przecinek 8 przecinek 5 przecinek 6 przecinek 3 przecinek 2 przecinek 1 przecinek 9 przecinek 4 przecinek 0 zamknij nawias klamrowy średnik.
Linia 6. int rozmiar znak równości 10 średnik.
Linia 8. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny rozmiar minus 1 średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 9. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar minus 1 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. if otwórz nawias okrągły liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny liczby otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. int pom znak równości liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 12. liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości liczby otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy średnik.
Linia 13. liczby otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy znak równości pom średnik.
Linia 14. zamknij nawias klamrowy.
Linia 15. zamknij nawias klamrowy.
Linia 16. zamknij nawias klamrowy.
Linia 17. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. cout otwórz nawias ostrokątny otwórz nawias ostrokątny liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 19. zamknij nawias klamrowy.
Linia 21. return 0 średnik.
Linia 22. zamknij nawias klamrowy.
21
Ćwiczenie 2
Zaprezentowany kod jest implementacją algorytmu sortowania bąbelkowego. Program do zamiany miejscami elementów tablicy wykorzystuje zmienną pomocniczą pom. Zaproponuj inny sposób zamiany elementów miejscami. Pamiętaj o niezbędnych bibliotekach.
Specyfikacja problemu:
Dane:
liczby – tablica liczb naturalnych
rozmiar – rozmiar tablicy; liczba całkowita
Wynik:
liczby – tablica liczb naturalnych posortowana niemalejąco
R6stUI3ICMA46
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. kratka include otwórz nawias ostrokątny algorithm zamknij nawias ostrokątny.
Linia 3. using namespace std średnik.
Linia 5. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. int liczby otwórz nawias kwadratowy 10 zamknij nawias kwadratowy znak równości otwórz nawias klamrowy 7 przecinek 8 przecinek 5 przecinek 6 przecinek 3 przecinek 2 przecinek 1 przecinek 9 przecinek 4 przecinek 0 zamknij nawias klamrowy średnik.
Linia 7. int rozmiar znak równości 10 średnik.
Linia 9. for otwórz nawias okrągły int j znak równości 0 średnik j otwórz nawias ostrokątny rozmiar minus 1 średnik j plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar minus 1 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. if otwórz nawias okrągły liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny liczby otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 12. swap otwórz nawias okrągły liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy przecinek liczby otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy zamknij nawias okrągły średnik.
Linia 13. zamknij nawias klamrowy.
Linia 14. zamknij nawias klamrowy.
Linia 15. zamknij nawias klamrowy.
Linia 17. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. if otwórz nawias okrągły i wykrzyknik znak równości rozmiar minus 1 zamknij nawias okrągły.
Linia 19. cout otwórz nawias ostrokątny otwórz nawias ostrokątny liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny cudzysłów cudzysłów średnik.
Linia 20. else.
Linia 21. cout otwórz nawias ostrokątny otwórz nawias ostrokątny liczby otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 22. zamknij nawias klamrowy.
Linia 24. return 0 średnik.
Linia 25. zamknij nawias klamrowy.
31
Ćwiczenie 3
W pewnej kręgielni zapisywano najlepsze dzienne wyniki. Po tygodniu przyszedł czas wyznaczenia rankingu graczy. Użyj sortowania bąbelkowego, aby wydrukować posortowaną rosnąco listę wyników. Użyj wersji zoptymalizowanej algorytmu.
Specyfikacja problemu:
Dane:
wyniki – tablica liczb naturalnych
rozmiar – rozmiar tablicy; liczba całkowita
Wynik:
wyniki – tablica liczb naturalnych
RRgeNPh5eEGXd
Przykładowe rozwiązanie zadania:
Linia 1. kratka include otwórz nawias ostrokątny iostream zamknij nawias ostrokątny.
Linia 2. using namespace std średnik.
Linia 4. int main otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 5. int wyniki otwórz nawias kwadratowy 7 zamknij nawias kwadratowy znak równości otwórz nawias klamrowy.
Linia 6. 84 przecinek.
Linia 7. 102 przecinek.
Linia 8. 77 przecinek.
Linia 9. 121 przecinek.
Linia 10. 111 przecinek.
Linia 11. 190 przecinek.
Linia 12. 138.
Linia 13. zamknij nawias klamrowy średnik.
Linia 14. int rozmiar znak równości 7 średnik.
Linia 15. bool czyZmiana znak równości true średnik.
Linia 17. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar minus 1 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. czyZmiana znak równości false średnik.
Linia 20. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar minus 1 średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 21. if otwórz nawias okrągły wyniki otwórz nawias kwadratowy i zamknij nawias kwadratowy zamknij nawias ostrokątny wyniki otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. int temp znak równości wyniki otwórz nawias kwadratowy i zamknij nawias kwadratowy średnik.
Linia 23. wyniki otwórz nawias kwadratowy i zamknij nawias kwadratowy znak równości wyniki otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy średnik.
Linia 24. wyniki otwórz nawias kwadratowy i plus 1 zamknij nawias kwadratowy znak równości temp średnik.
Linia 25. czyZmiana znak równości true średnik.
Linia 26. zamknij nawias klamrowy.
Linia 27. zamknij nawias klamrowy.
Linia 28. if otwórz nawias okrągły wykrzyknik czyZmiana zamknij nawias okrągły otwórz nawias klamrowy.
Linia 29. break średnik.
Linia 30. zamknij nawias klamrowy.
Linia 31. zamknij nawias klamrowy.
Linia 33. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny rozmiar średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 34. cout otwórz nawias ostrokątny otwórz nawias ostrokątny wyniki otwórz nawias kwadratowy i zamknij nawias kwadratowy otwórz nawias ostrokątny otwórz nawias ostrokątny endl średnik.
Linia 35. zamknij nawias klamrowy.
Linia 37. return 0 średnik.
Linia 38. zamknij nawias klamrowy.