Сначала я создаю 6 списков случайных чисел, каждый из которых имеет разную длину:
arr = [random.randint(1,15000) for _ in range(1000)]
numbersList = [10,100,500,1000,5000,8000]
numbersForBenchmark = []
for i in range(len(numbersList)):
arr = [random.randint(1,15000) for _ in range(numbersList[i])]
numbersForBenchmark.append(arr)
print(numbersForBenchmark)
recursionTimeArray = []
Теперь у меня есть рекурсия QuickSort:
def partition(lst, start, end):
pos = start
for i in range(start, end):
if lst[i] < lst[end]:
lst[i],lst[pos] = lst[pos],lst[i]
pos += 1
lst[pos],lst[end] = lst[end],lst[pos]
return pos
def quick_sort_recursive(lst, start, end):
if start < end:
pos = partition(lst, start, end)
quick_sort_recursive(lst, start, pos - 1)
quick_sort_recursive(lst, pos + 1, end)
И затем драйвер работает для всех массивов:
for i in range(len(numbersForBenchmark)):
arrRe = numbersForBenchmark[i]
try:
n = len(arrRe)
start = time.time()
quick_sort_recursive(arrRe,0,n-1)
end = time.time()
rekTime = end - start
recursionTimeArray.append(rekTime)
except RecursionError as re:
print('Problem with recursive depth!)
Итак, как вы можете видеть, я измеряю time
и помещаю время в массив. Но мне нужно 6 результатов (у меня есть 6 массивов), но в двух примерах я получил ошибку два раза:
print('Problem with recursive depth!)
Я пытался справиться с этим:
import sys
sys.setrecursionlimit(1500)
Но Программа заканчивается где-то в середине, и я не получаю никаких результатов.
Как я могу это исправить?