摘要: 问题描述假设n个记录中每个关键字都介于0到k-1之间,修改计数排序算法,使得算法满足:时间复杂度:O(n+k),空间复杂度:n+O(k)问题分析原计数排序算法中,需借助另一个大小为n的数组进行排序,不能做到原地排序,如何实现原地排序?原计数排序算法中,对数组中的每个元素,都已计算出了比其小或相等的元素个数,即确定了其最终位置。每个元素都已确定了自身的最终位置,但如何实现原地排序?解决思路从数组最后一个元素array[array.size()-1]开始,将其交换至最终位置上,并对交换后的array[array.size()-1]继续执行此操作,直至该元素的最终位置即为此位置为止,此后,对下一个位 阅读全文
posted @ 2012-11-14 12:45 zzwab 阅读(1182) 评论(0) 推荐(0) 编辑