基数排序(Radix Sorting)是一种借助多关键字排序的思想对单逻辑关键字进行关系的方法。基数排序不需要进行记录关键字间的比较。
主要分为两个过程:
(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)
(2)收集,再将放置在0~9号桶中的数据按顺序放到数组中
基数排序的特点:
稳 定 性:稳定
时间复杂度:O(kn)(k表示整形的最高位)
空间复杂度:O(10n)
举例排序过程:
对 23, 12, 15, 108, 4,5 进行基数排序
1、对个位进行排序
12,23,4,5,15,108
2、对十位进行排序
108,4,5,12,15,23
3、对百位进行排序
4,5,12,15,23, 108
代码:
#include <stdio.h>
#include <stdlib.h>
void RadixCountSort(int