#include "Matrix.h"
const int N = 105;
int a[N];
void srotbase(int bas,int n)
{
int out[N];
int buck[11];
buck[10] = 0;
for (int i = 0; i < 10; i++)
buck[i] = 0;
for (int i = 0; i < n; i++)
buck[(a[i] / bas)%10]++;
for (int i = 1; i < 10; i++)
buck[i] += buck[i - 1];
for (int i = n-1; i >=0; i--)
{
out[buck[(a[i] / bas )%10]-1] = a[i];
buck[(a[i] / bas )%10]--;
}
cout << "the first:" << bas << endl;
for (int i = 0; i < n; i++)
{
a[i] = out[i];
cout << out[i] << ' ';
}
cout << endl;
}
void bassort(int n,int maxx)
{
for (int i = 1; maxx / i != 0; i *= 10)
srotbase(i,n);
}
int main()
{
int n;
cin >> n;
int maxx = 0;
for (int i = 0; i < n; i++)
{
cin >> a[i];
if (a[i] > maxx) maxx = a[i];
}
cout << "before :" << endl;
for (int i = 0; i < n; i++)
cout << a[i] << ' ';
cout << endl;
bassort(n,maxx);
system("pause");
return 0;
}
/*
10
23 13 25 67 81 10 4 34 567 11
*/
基数排序
最新推荐文章于 2021-05-22 12:52:25 发布