使用辅助空间 arr[age]进行打印
//对数万名员工的年龄排序
//使用辅助空间打印年龄
#include<iostream>
using namespace std;
template <class T>
void sortAge(T &arry)
{
int length = sizeof(arry) / sizeof(arry[0]);
if (arry == NULL || length <= 0)
{
return;
}
int max = 99;
int arr[100];
for (int i = 0; i <= 99; ++i)
{
arr[i] = { 0 };
}
//各个年龄人数做统计
for (int i = 0; i < length; ++i)
{
int age = arry[i];
if (age < 0 || age >= 100)
{
cout << "age out of range" << endl;
}
++arr[age];
}
//接下来就是按照不同年龄的arr对arry[]进行赋值了
int k = 0;
for (int i = 0; i <= 99; ++i)
{
for (int j = 0; j < arr[i]; ++j)
{
arry[k++] = i;
}
}
}
template <class T>
void printArr(T & arr)
{
int length = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < length; ++i)
{
cout << arr[i] << " ";
}
cout << endl;
}
int main()
{
int arry[] = { 23, 56, 48, 61, 5, 15, 1, 5, 1, 3, 1, 51, 51, 6, 64, 5, 1, 31, 5, 4, 13, 15, 45, 2, 1, 5, 41, 5, 12, 1, 5, 51, 5, 1, 21 };
sortAge(arry);
printArr(arry);
system("pause");
return 0;
}