计数排序是一种适合于最大值和最小值的差值不是不是很大的排序。例如 temp[i] = m, 表示元素 i 一共出现了 m 次
/// <summary>
/// 计数排序
/// </summary>
static void CountSort(int[] arr)
{
//1.得到数列的最大值
int Max = arr[0];
for (int i = 1; i < arr.Length; i++)
{
if (arr[i]>Max)
{
Max = arr[i];
}
}
//2.根据数列最大值确定统计数组的长度
int[] newArr = new int[Max+1];
//3.遍历数列,填充统计数组
for (int i = 0; i < arr.Length; i++)
{
newArr[arr[i]]++;
}
//4.遍历统计数组,输出结果
int index = 0;
for (int i = 0; i < newArr.Length; i++)
{