0
有歸併排序我見過的許多實現,但是,我想寫一個從合併排序的算法定義直譯:歸併排序實現
- 拆分陣列,直到剩下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])
有人可以幫我把這兩種方法縫合在一起,以便合併排序。只是重申一下,我沒有看到新的方法。謝謝。
沒有進入,爲什麼不是方法靜態的,什麼是'水桶的使用'等等。使用這個類的代碼在哪裏? – Yigal
@Yigal桶應該保存排序後的數組。我正在使用調用代碼更新代碼。 –
如果您只是使用您的類調用'_sort()'方法,則不需要使用'bucket'變量進行初始化。 – Daniel