对于一个int数组,请编写一个基数排序算法,对数组元素排序。
给定一个int数组A及数组的大小n,请返回排序后的数组。保证元素均小于等于2000。
测试样例:
[1,2,3,5,2,3],6
[1,2,2,3,3,5]
class RadixSort {
public:
int* radixSort(int* A, int n) {
// write code here
queue<int> My_q[10];
for (int i=0;i<=3;i++)
{
for (int j=0;j<n;j++)
{
int digit=A[j];
for (int k=0;k<i;k++)
{
digit/=10;
}
digit=digit%10;
My_q[digit].push(A[j]);
}
int index=0;
for (int j=0;j<10;j++)
{
while (!My_q[j].empty())
{
A[index]=My_q[j].front();
My_q[j].pop();
index++;
}
}
}
return A;
}
};