算法导论习题8.3-4
对0到n^2-1范围内的数字进行排序,要求时间复杂度为O(n)。
可以直接采用基数排序法对其排序,但是这些数字为已知范围,所以有更进一步的优化,即将所有的数字转换成n进制,这样这些数在n进制下只有两位,即只需要比较2O(n)即可。转换成n进制消耗2O(n),所以对于比较的数字为四位以上时,该算法较普通的基数排序有优势。
具体代码如下:
修改:此处的插入排序应该改为计数排序。因为插入排序时间复杂度太高