算法导论 第八章计数排序(counting sort)
看最后一个for循环,循环变量是从length减到1,而位置的安排也是从后往前的,所以下标小的元素的位置总是较早地被安排,因此计数排序是一种稳定的排序。
计数排序的时间按复杂度为O(n+k),因此k=O(n),即k远小于数据量n时,复杂度为O(n),用计数排序能够得到一个很好的效果。
这个算法的优点是排序快,缺点是需要额外的空间,而且对数据的种类k的上界有要求。
看最后一个for循环,循环变量是从length减到1,而位置的安排也是从后往前的,所以下标小的元素的位置总是较早地被安排,因此计数排序是一种稳定的排序。
计数排序的时间按复杂度为O(n+k),因此k=O(n),即k远小于数据量n时,复杂度为O(n),用计数排序能够得到一个很好的效果。
这个算法的优点是排序快,缺点是需要额外的空间,而且对数据的种类k的上界有要求。