Implementacja algorytmu sortowania przez wstawianie w języku Python

1
Problem 1

Napisz program sortujący niemalejąco listę n liczb całkowitych. Wykorzystaj metodę sortowania przez wstawianie. Funkcja powinna sortować wejściową listę w miejscu. Przetestuj rozwiązanie dla danych:

Linia 1. n znak równości len otwórz nawias okrągły liczby zamknij nawias okrągły. Linia 2. liczby znak równości otwórz nawias kwadratowy 15 przecinek 9 przecinek 7 przecinek minus 1 przecinek 1 przecinek 2 przecinek 3 przecinek 4 przecinek 8 przecinek 5 przecinek 7 przecinek 3 przecinek 3 przecinek 0 przecinek minus 3 zamknij nawias kwadratowy.

Specyfikacja problemu:

Dane:

  • n – liczba naturalna

  • liczby – lista zawierająca n liczb całkowitych do posortowania

Wynik:

Na standardowe wyjście wyświetlana jest posortowana niemalejąco tablica n-elementowa.

RIXSyllWaUevE
Wymyśl pytanie na kartkówkę związane z tematem materiału.
Polecenie 1

Porównaj swoje rozwiązanie z przedstawionym w prezentacji.

R1DEp2yf0919b1
Wybierz dowolne angielskie słówko ze słowniczka i zapytaj kolegę o jego znaczenie.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Porównania

Liczba potrzebnych porównań elementów listy może być wyrażona wzorami:

Uwaga! Dwa porównania na początku pętli while liczymy jako jedno.

W tabeli przedstawiono porównania.

n

optymistyczna liczba porównań

pesymistyczna liczba porównań

20

19

190

30

29

435

40

39

780

50

49

1225

60

59

1770

70

69

2415

80

79

3160

90

89

4005

100

99

4950

W tabeli przedstawiono przestawienia.

n

optymistyczna liczba przestawień

pesymistyczna liczba przestawień

20

19

209

30

29

464

40

39

819

50

49

1247

60

59

1829

70

69

2484

80

79

3239

90

89

4094

100

99

5049

RyflWAEXWWCOg
Ilustracja przedstawia wykres: Liczba porównań i przestawień w zależności od typu przypadku.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Słownik

przypadek optymistyczny
przypadek optymistyczny

przypadek, w którym podczas sortowania zostanie wykonana najmniejsza możliwa liczba operacji; lista uporządkowana w oczekiwanej kolejności – czyli dla sortowania w porządku rosnącym będzie to np. lista [2, 3, 4, 5]

przypadek pesymistyczny
przypadek pesymistyczny

przypadek, w którym podczas sortowania zostanie wykonana największa możliwa liczba operacji; lista uporządkowana w kolejności odwrotnej od oczekiwanej – czyli dla sortowania w porządku rosnącym będzie to np. lista [5, 4, 3, 2, 1]