У меня есть следующая реализация алгоритма Counting Sort в Python, но она не работает с массивами, содержащими отрицательные числа. Может кто-нибудь мне помочь?Как я могу реализовать CountingSort, который работает с отрицательными числами?
def counting(nlist):
nlist = list(nlist)
size = len(nlist)
if size < 2:
return nlist
k = max(nlist)
counter = [0] * (k + 1)
for i in nlist:
counter[i] += 1
ndx = 0;
for i in range(len(counter)):
while 0 < counter[i]:
nlist[ndx] = i
ndx += 1
counter[i] -= 1
return nlist
Вы отступ вашему цикла в то время как неправильно – samgak
Спасибо, Когда я вставил код, который я не обратил внимание на отступы! – Patterson