Реализация сортировки слиянием в Python с использованием другого подходаPython

Программы на Python
Ответить
Anonymous
 Реализация сортировки слиянием в Python с использованием другого подхода

Сообщение Anonymous »

Я видел множество реализаций сортировки слиянием, однако я пытаюсь написать ту, которая буквально переводится из алгоритмического определения сортировки слиянием:
  • Разделяйте массивы, пока не останется 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»