Sortowanie przez wstawianie: Różnice pomiędzy wersjami

Wandalizm - Wycofano ostatnią zmianę treści (wprowadzoną przez 83.30.30.9) i przywrócono wersję 39576680 autorstwa MalarzBOT
Nie podano opisu zmian
(Wandalizm - Wycofano ostatnią zmianę treści (wprowadzoną przez 83.30.30.9) i przywrócono wersję 39576680 autorstwa MalarzBOT)
{{Algorytm infobox
4
 
5
 
4
 
'''dsfgaerjn;atklmnhjiejn'''{{Algorytm infobox
|grafika=Insertion sort animation.gif
|wielkość grafika=
|pamiec=
}}
'''Sortowanie przez wstawianie''' (ang. ''InsuSortInsert Sort'', ''Insertion Sort'') - jeden z najprostszych [[algorytm]]ów [[sortowanie|sortowania]], którego zasada działania odzwierciedla sposób w jaki ludzie ustawiają karty - kolejne elementy wejś5o4uq4ewewejściowe są ustawiane na odpowiednie miejsca docelowe{{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23}}. Jest efektywnryefektywny dla niewielkiej liczby elementów, jego [[złożoność obliczeniowa|złożoność]] wynosi [[Asymptotyczne tempo wzrostu|O(''n''<sup>2</sup>]]){{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23}}. Pomimo tego, że jest znaczni5uznacznie mniej wydajny od algorytmów takich jak [[Sortowanie szybkie|quicksort]] czy [[Sortowanie przez kopcowanie|heapsort]], posiada pewne zalety:
* jest wydajny dla danych wstępnie posortowanych{{fakt|data=2014-06}}
* jest wydajny dla zbiorów o niewielkiej liczebności{{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23}}
* jest stabilny{{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23}}
 
== Schemat działania algorytmalgorytmu uq{{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23}}==
[[Plik:Insertion-sort-example-300px.gif|right|Przykład działania]]
# 45wanychUtwórz zbiór elementów posortowanych i przenieś do niego dowolny element ze zbioru nieposortowanego.
# Weź dowolny element ze zbioru nieposortowanego.
# Wyciągnięty element porównuj z kolejnymi elementrramielementami zbioru posortowanego póki nie napotkasz elementu równego lub elemenyuelementu ększegowiększego (jeślrijeśli chcemy otrzymać ciąg niemalrwtejącyniemalejący) lub nie znajdziemy się na początku/końcu zbioruyzbioru uporządkowanego.
# Wyciągnięty element wstaw w miejsce gdzie skończyłeś porównywać.
# Jeśli zbiór elementów nieuporządkowanych jest niepusty wróć do punkt 2.
 
== Algorytm - pseudo35kodpseudokod ==
Poniższy kod przedstawia algorytm zapisany w pseudokodzie, gdzie{{odn|Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein|s=23-24}}:
* A - tablica danych, p3yzenaczonychprzeznaczonych do posortowania (indeksowana od 1 do n)
* n - liczba elementów wyw tablicy A
<syntaxhighlight lang="cpp">
0. Insert_sort(A, n)