一、基序排序的的基本思路
将整数分别从低位到高位进行排序,即先按照个位进行排序、再按照十位进行排序、再百位、千位、、、、、、、、
二、动态演变过程:
以{179,208,306,93,859,984,55,9,271,33};这个数组为例:
三、代码和测试结果
#include <iostream>
#include <list>
using namespace std;
#define DATA_NUM (10)
//获取一个数是几位数:11是2位数,111是3位数....
size_t get_digits(const size_t & num)
{
size_t d = 1, p = 10;
while (num >= p)
{
d++;
p *= 10;
}
return d;
}
//基数排序
void radix_sort(size_t data[], size_t n)
{
size_t max_digit = 0;
for (size_t i = 0; i < n; i++)
{
size_t digit = get_digits(data[i]);
max_digit = max_digit >&#