这似乎是一本非常普通的书(Cormen、Leiserson、Rivest、Stein),因此希望有人能够提供帮助。第8章给出了计数排序算法。输入数组 A 的位置是有意义的,并且对于数组 C 的大小,您可以找到从 0 到 k 的范围。然后使 C[i] 包含 A 中等于 i 的元素数。例如:
A: [2,5,3,0,2,3,0,3]
C: [2,0,2,3,0,1]
但在此之后,他们使 C[i] 包含小于或等于 i 的元素数。例如:
C: [2,2,4,7,7,8]
为什么这是必要的?您不能只遍历原始 C 并从中获得一个排序数组吗?您知道每个数字的确切计数,因此您可以按顺序将每个数字的正确数量放入 B 并拥有一个排序数组。将 C 从第一种形式转换为第二种形式是否会使其稳定?