- Разделяйте массивы, пока не останется 1 элемент.
- Объедините их вместе.
Код: Выделить всё
class MergeSort:
def __init__(self):
bucket = []
def _sort(self, arr):
if len(arr) == 1:
pass
mid = len(arr) //2
self._sort(arr[:mid])
self._sort(arr[mid:])
def _merge(self, arr1, arr2, arr):
i, j = 0, 0
while i < len(arr1) and j < len(arr2):
if arr1[i] < arr2[j]:
arr.append(arr1[i])
i += 1
else:
arr.append(arr2[j])
j += 1
Код: Выделить всё
merge_sort = MergeSort()
merge_sort._sort([1,9,3,2,5])
Подробнее здесь: https://stackoverflow.com/questions/461 ... t-approach
Мобильная версия