Название | Лучшее время | Среднее время | Худшее время | Память |
---|---|---|---|---|
Сортировака пузырьком (Bubble Sort) |
O(n) | On(n^2) | O(n^2) | O(1) |
Сортировака выбором (Bubble Sort) |
O(n^2) | On(n^2) | O(n^2) | O(1) |
- Асмиптотика O(n^2^)
- Редко применяются на практике
- Ваожно знать, чтобы понимать приципы работы
Название | Лучшее время | Среднее время | Худшее время | Память |
---|---|---|---|---|
Сортировака пузырьком (Bubble Sort) |
O(n) | On(n^2) | O(n^2) | O(1) |
- Каждый раз будем смещать самый "тяжелый" элимент в конец
- Для всех i от 1 до n - 1, если a
i> ai + 1 обмениваем их местами - Для одного элемента в худшем слачае n обменов
- Для n элементов n^2
- Для всех i от 1 до n - 1, если a
def bubble_sort(m_list: list) -> list:
n = len(m_list)
for i in range(n):
already_stoped = True:
for j in range(n - i - 1):
if m_list[j] > m_list[j + 1]:
m_list[j], m_list[j + 1] = m_list[j + 1], m_list[j]
alredy_stoped = False
if already_stoped:
break
return m_list
Название | Лучшее время | Среднее время | Худшее время | Память |
---|---|---|---|---|
Сортировака выбором (Bubble Sort) |
O(n^2) | On(n^2) | O(n^2) | O(1) |
Сортировка выбором — также простой алгоритм, но более эффективный по сравнению с пузырьковой сортировкой. В большинстве случаев сортировка выбором будет более удачным выбором из двух.
В этом алгоритме список (или массив) делится на две части: список с отсортированными элементами и список с элементами, которые только нужно сортировать. Сначала ищется самый маленький элемент во втором. Он добавляется в конце первого. Таким образом алгоритм постепенно формирует список от меньшего к большему. Так происходит до тех пор, пока не будет готовый отсортированный массив.
- Каждый раз будем будем находить наименьший элимент
- Для всех i от 0 до n - 1, если a
j> aminimum то minimum будет равен j - Для n элементов n^2
- Для всех i от 0 до n - 1, если a
def selection_sort(m_list: list) -> list:
n = len(m_list)
for i in range(n):
minimum = i:
for j in range(i + 1, n):
if m_list[j] > m_list[minimum]:
minumum = j
m_list[i], m_list[minimum] = m_list[minimum], m_list[i]
return m_list