Я реализовал алгоритм сортировки в python. Я вижу, что учетная сортировка является стабильной, поскольку она сохраняет порядок элемента в исходном массиве. Считаете ли вы, что приведенная ниже реализация является стабильной?Устойчивость подсчета сортировки
def countingsort(A,n):
C = [0]*n
B = [0]*n
# the value of A[i] becomes the index for counting
# C now stores the no. of occurences of element A[i] in A
for i in A:
C[i] = C[i] + 1
print i,C
# prepare the indexes for reinsertion
# Each position in C now holds the range of array position where a value will be placed
i = 0
while i < n:
#print i
C[i] = C[i] + C[i-1]
i += 1
print "Array position for each element",C
.
# the stability part of sort ???
for j in xrange(n-1,0,-1):
print "j",j,"A[j]:",A[j]
B[C[A[j]]-1] = A[j]
print B
C[A[j]] = C[A[j]] - 1
print C
print B
return B
if __name__ == '__main__':
A =[0,2,0,1,3,4,6,1,3,2]
countingsort(A,len(A))
Что такое использование сортировки в реальном мире?
* «Считаете ли вы, что приведенная ниже реализация является стабильной?» * - Вы протестировали ее? Что случилось? – jonrsharpe
Позвольте мне проверить элементы словаря. Я пробовал с помощью целых чисел, которые не дают правильного изображения, поскольку они все одинаковы. – Tammy
Сортировка сортировки - это быстрый способ сортировки массива целых чисел, который может быть отсортирован от младшего значащего байта до наиболее значимого байта, взяв 4 прохода для 32-битных целых чисел и 8 проходов для 64-битных целых чисел. Алгоритм необходимо изменить, если массив содержит отрицательные целые числа. – rcgldr