基数排序
基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高优先级高的在前,高优先级相同的低优先级高的在前。基数排序基于分别排序,分别收集,所以是稳定的。
时间复杂度
时间复杂度:O(d(r+n))
空间复杂度:O(rd+n)
稳定
排序过程
代码实现
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//找最大数的位数
int FindMaxNum(int arr[],int len)
{
int maxnum = arr[0];
for(int i = 1;i < len;i++)
{
if(arr[i] > maxnum)
{
maxnum = arr[i];
}
}
int count = 0;
while(maxnum != 0)
{
maxnum /= 10;
count++;
}
return co