Вот пример алгоритма сортировки слиянием, реализованного на Python:
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_half = arr[:mid]
right_half = arr[mid:]
left_half = merge_sort(left_half)
right_half = merge_sort(right_half)
return merge(left_half, right_half)
def merge(left, right):
result = []
left_index = right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] < right[right_index]:
result.append(left[left_index])
left_index += 1
else:
result.append(right[right_index])
right_index += 1
result.extend(left[left_index:])
result.extend(right[right_index:])
return result
Эта реализация использует подход «разделяй и властвуй» для рекурсивного разделения входного массива на более мелкие подмассивы, их сортировки, а затем обратного объединения для получения отсортированного результата. Функция merge_sort()
служит точкой входа, а функция merge()
объединяет отсортированные подмассивы.
Вот несколько альтернативных методов реализации сортировки слиянием:
- Реализация сортировки слиянием в C++.
- Реализация сортировки слиянием с использованием Java.
- Пошаговое объяснение алгоритма сортировки слиянием.
- Понимание временной сложности сортировки слиянием.
- Рекурсивная реализация сортировки слиянием в Python.