Dobrą miarą efektywności algorytmu sortowania jest liczba koniecznych porównań kluczy i liczba koniecznych przesunięć (przestawień) obiektów. Metody proste wymagają rzędu n^2 porównań, a metody zaawansowane rzędu n*log(n). Metody proste sortowania w miejscu:
Metody proste sortowania wybiera się w następujących sytuacjach:
Przedstawione implementacje algorytmów sortowania będą maiały postać funkcji typu anysort(L, left, right), gdzie sortowane będą elemeny na liście L na pozycjach od left do right włącznie. Wykorzystywana jest pomocnicza funkcja swap(L, left, right), która zamienia miejscami elementy na pozycjach left i right.
def swap(L, left, right):
"""Zamiana miejscami dwóch elementów."""
# L[left], L[right] = L[right], L[left]
item = L[left]
L[left] = L[right]
L[right] = item
# Sedgewick korzysta z jeszcze jednej funkcji pomocniczej.
def compswap(L, left, right):
"""Zamiana miejscami dwóch elementów, jeżeli warunek jest spełniony."""
if L[left] > L[right]:
# L[left], L[right] = L[right], L[left]
item = L[left]
L[left] = L[right]
L[right] = item
def anysort(L, left, right):
"""Sortowanie listy L w miejscu od left do right włącznie."""
pass