Я пытаюсь выучить алогриту сортировки слиянием, но в моем понимании сталкиваюсь с блоком.
Свертывание - это начальная часть алогрита сортировки слиянием:
def mergeSort(nlist):
print("Splitting ",nlist)
if len(nlist)>1:
mid = len(nlist)//2
lefthalf = nlist[:mid]
righthalf = nlist[mid:]
mergeSort(lefthalf)
mergeSort(righthalf)
Функция mergesort вызывается снова и снова, и это изменяет значение левой и правой половин, так что при вызове второй функции mergesort у нее будет только один элемент. Куда сохраняется остальная часть списка и как она восстанавливается снова? , Я не могу понять ход программы.
Как я понимаю это, я не могу понять, как это работает ...