Sortowanie szybkie
Sortowanie przez scalanie i sortowanie szybkie - Algorytmy: zakres rozszerzony (Python)
Sortowanie szybkie wybiera **element osiowy** (pivot), np. ostatni, i dzieli listę na elementy mniejsze od niego i niemniejsze. Potem rekurencyjnie sortuje obie części. Średnio działa w czasie n * log2(n), ale dla niekorzystnie ułożonych danych (np. już posortowanych) zwalnia do n^2.
def quick_sort(data):
if len(data) <= 1:
return data
pivot = data[-1]
smaller = [x for x in data[:-1] if x < pivot]
other = [x for x in data[:-1] if x >= pivot]
print("pivot", pivot, ":", smaller, other)
return quick_sort(smaller) + [pivot] + quick_sort(other)
print(quick_sort([5, 2, 9, 1, 7, 3, 8, 6]))Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Algorytmy: zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.