Я новичок в python. Я пытаюсь написать код python для mergesort, и я не могу найти ошибку.Получение ошибок неупорядоченных типов: int()> = list()
import math
t = int(input())
def merge(lf,rf):
p=0
q= 0
b=[]
for i in range(len(rf)+len(lf)):
if (p>=len(lf)):
b.append(rf[q:])
break
elif (q>=len(rf)):
b.append(lf[p:])
break
elif (lf[p]>=rf[q]):
b.append(rf[q])
q=q+1
else:
b.append(lf[p])
p=p+1
return b
def sort(a):
if (len(a)>1):
mid = int(len(a)/2)
lf=a[:mid]
rf=a[mid:]
lf=sort(lf)
rf=sort(rf)
a=merge(lf,rf)
print (a)
return a
for i in range(t):
n = int(input())
a = [0]*n
for j in range(n):
a[j]=int(input())
sort(a)
print(a)
В какой строке возникает ошибка неупорядоченных типов? Короче говоря, вы сравниваете целое число со списком целых чисел, и это не допускается в Python 3. Возможно, вы задумали забыть индексировать ссылку на список (например, 'x> l [i]' вместо 'x> = l [i] 'Пожалуйста, прочитайте http://stackoverflow.com/help/mcve – chepner
Последний оператор' print' в вашем цикле for печатает исходный список, и я не уверен, что это предназначено. Если вы хотите распечатать отсортированный список вместо этого вам придется переназначить 'a' для возврата' sort'. – Leon
Когда ваш код на Python выдает сообщение об ошибке, очень полезно, если вы можете вставить сообщение об ошибке трассировки _entire_ в ваш вопрос, чтобы мы могли точно увидеть, что вызывает Ошибка. (Поместите его в блок-блок, чтобы сохранить форматирование). –