以前只是理解基数排序的理论,感觉很简单,从来没有实现过,今天实现时遇到了一些细节问题:
(1)保证排序子程序的稳定性,可以使用前面介绍过的计数排序。
(2)对于排序的整数,如果有d位,需要调用d次计数排序子程序,时间复杂度位O(d*n)。
(3)在是现实,由于需要d此调用计数排序,因此需要许多“根据第i位分配”——“重新组装”——“根据第i+1位分配”——“重新组装”,这就需要许多保存这些中间结果的数组,程序中使用两个数组a和b进行动态的分配和释放,时空间复杂度是O(n)。
以前只是理解基数排序的理论,感觉很简单,从来没有实现过,今天实现时遇到了一些细节问题:
(1)保证排序子程序的稳定性,可以使用前面介绍过的计数排序。
(2)对于排序的整数,如果有d位,需要调用d次计数排序子程序,时间复杂度位O(d*n)。
(3)在是现实,由于需要d此调用计数排序,因此需要许多“根据第i位分配”——“重新组装”——“根据第i+1位分配”——“重新组装”,这就需要许多保存这些中间结果的数组,程序中使用两个数组a和b进行动态的分配和释放,时空间复杂度是O(n)。