Я пытаюсь выполнить ту же сортировку слиянием на месте, начиная с n=2,4,...2^16. Я сделал то же самое для сортировки вставкой, и программа работает, но мои параметры сортировки слиянием на месте значительно усложняют задачу. Я не объявлял «массив, низкий, средний, высокий», такой как: низкий, средний, высокий = 0, len(массив)//2, len(массив). Тест также вычисляет время каждой итерации и выводит общее количество итераций.
Моя ошибка возникает в точке merge_sort(array_to_sort), где говорится, что моя переменная не была объявлена. Мой вопрос: в какой момент я объявляю свой низкий, средний, высокий и массив? Как бы я это сделал, объявив об этом? Если кто-то сможет воссоздать это, реализовав эту одну часть, я буду признателен, спасибо. Вот мой код:
import random
import time
from random import randint
def merge_sort(array, low, mid, high):
i,j,k = low,mid+1,low
leftarray = array[low:mid+1]
rightarray = array[mid+1:high+1]
temp= [0]*high
while i