首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

算法导论练习8.3-4

2012-08-13 
算法导论习题8.3-4对0到n^2-1范围内的数字进行排序,要求时间复杂度为O(n)。可以直接采用基数排序法对其排序

算法导论习题8.3-4

对0到n^2-1范围内的数字进行排序,要求时间复杂度为O(n)。

可以直接采用基数排序法对其排序,但是这些数字为已知范围,所以有更进一步的优化,即将所有的数字转换成n进制,这样这些数在n进制下只有两位,即只需要比较2O(n)即可。转换成n进制消耗2O(n),所以对于比较的数字为四位以上时,该算法较普通的基数排序有优势。

具体代码如下:

修改:此处的插入排序应该改为计数排序。因为插入排序时间复杂度太高


 

热点排行