【发布时间】:2015-07-06 23:55:22
【问题描述】:
计数排序基本上是将计数值存储在哈希表排序的结构中,然后将值打印出来。
我采用的方法是:
遍历输入数组并将总计数存储为
count[arr[i]]++再次,遍历计数数组并打印
i(th)索引号,其次数与count[arr[i]]中的值一样多。这不是正确的方法吗?
我阅读教程的大部分地方,他们将先前元素的计数总和存储在计数数组中,然后通过首先减少计数然后打印它来放置在排序数组中。
我的方法有什么问题吗?
谢谢!
【问题讨论】:
-
我注意到Wikipedia article on counting sort 在最后一个循环中增加了计数,而不是像上面提到的那样减少它。如您所述,Geeksforgeek's counting sort page 减少计数。他们都对输入数据进行排序,但我认为不同之处在于相同排序的项目是以输入顺序还是反向输入顺序打印(例如,在我下面的答案中,它是否打印“... dragonfruit watermelon ...”或“。 ..西瓜火龙果...”)。
标签: arrays sorting counting-sort