Zapisz algorytm sortujący tablicę liczb całkowitych niemalejąco, z użyciem algorytmu sortowania przez wstawianie, a następnie wypisujący ją na ekran. Przetestuj działanie algorytmu dla następującej tablicy: [5, 9, 1, 9, 7].
Zapisz rozwiązanie w wybranym języku programowania lub za pomocą schematu blokowego.
Zapisz rozwiązanie w języku Python.
Specyfikacja:
Dane:
lista – n‑elementowa tablica do posortowania
n – liczba elementów zbioru; liczba naturalna dodatnia
Wynik:
Na standardowe wyjście wyświetlana jest posortowana niemalejąco tablica n‑elementowa.
Przykładowe wyjście:
Linia 1. 1 5 7 9 9.
RxAA9sAbtMpTt
R1LRR9YI1uqCo1
RZISjVDW71lXR
1
1
Rt2LxOGq5SScM1
Linia 1. lista znak równości None.
Linia 2. i znak równości None.
Linia 3. pomocnicza znak równości None.
Linia 4. j znak równości None.
Linia 6. def upRange otwórz nawias okrągły start przecinek stop przecinek step zamknij nawias okrągły dwukropek.
Linia 7. while start otwórz nawias ostrokątny znak równości stop dwukropek.
Linia 8. yield start.
Linia 9. start plus znak równości abs otwórz nawias okrągły step zamknij nawias okrągły.
Linia 11. def downRange otwórz nawias okrągły start przecinek stop przecinek step zamknij nawias okrągły dwukropek.
Linia 12. while start zamknij nawias ostrokątny znak równości stop dwukropek.
Linia 13. yield start.
Linia 14. start minus znak równości abs otwórz nawias okrągły step zamknij nawias okrągły.
Linia 17. lista znak równości otwórz nawias kwadratowy 5 przecinek 9 przecinek 1 przecinek 9 przecinek 7 zamknij nawias kwadratowy.
Linia 18. i podkreślnik end znak równości float otwórz nawias okrągły len otwórz nawias okrągły lista zamknij nawias okrągły zamknij nawias okrągły.
Linia 19. for i in otwórz nawias okrągły 1 otwórz nawias ostrokątny znak równości i podkreślnik end zamknij nawias okrągły and upRange otwórz nawias okrągły 1 przecinek i podkreślnik end przecinek 1 zamknij nawias okrągły or downRange otwórz nawias okrągły 1 przecinek i podkreślnik end przecinek 1 zamknij nawias okrągły dwukropek.
Linia 20. pomocnicza znak równości lista otwórz nawias kwadratowy int otwórz nawias okrągły i minus 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 21. j znak równości i minus 1.
Linia 22. while j zamknij nawias ostrokątny znak równości 0 and lista otwórz nawias kwadratowy int otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias ostrokątny pomocnicza dwukropek.
Linia 23. lista otwórz nawias kwadratowy int otwórz nawias okrągły otwórz nawias okrągły j plus 1 zamknij nawias okrągły minus 1 zamknij nawias okrągły zamknij nawias kwadratowy znak równości lista otwórz nawias kwadratowy int otwórz nawias okrągły j minus 1 zamknij nawias okrągły zamknij nawias kwadratowy.
Linia 24. j znak równości j minus 1.
Linia 25. lista otwórz nawias kwadratowy int otwórz nawias okrągły otwórz nawias okrągły j plus 1 zamknij nawias okrągły minus 1 zamknij nawias okrągły zamknij nawias kwadratowy znak równości pomocnicza.
Linia 26. i podkreślnik end2 znak równości float otwórz nawias okrągły len otwórz nawias okrągły lista zamknij nawias okrągły zamknij nawias okrągły.
Linia 27. for i in otwórz nawias okrągły 1 otwórz nawias ostrokątny znak równości i podkreślnik end2 zamknij nawias okrągły and upRange otwórz nawias okrągły 1 przecinek i podkreślnik end2 przecinek 1 zamknij nawias okrągły or downRange otwórz nawias okrągły 1 przecinek i podkreślnik end2 przecinek 1 zamknij nawias okrągły dwukropek.
Linia 28. print otwórz nawias okrągły lista otwórz nawias kwadratowy int otwórz nawias okrągły i minus 1 zamknij nawias okrągły zamknij nawias kwadratowy zamknij nawias okrągły.