计数排序
就是对一个已知元素范围的列表,比如1324123135
首先建立一个0-5长度的列表,
开始计数
0 0
1 3
2 2
3 3
4 1
5 1
然后挨个输出 111223345,排序完成
public void CountSort(List<int> li,int maxCount)
{
List<int> countList = new List<int>();
countList.Capacity = maxCount + 1;
for (int i = 0; i < maxCount+1; i++)
{
countList.Add(0);
}//初始化0-maxCount大小的列表 元素都是0
for (int i = 0; i < li.Count; i++)
{
countList[li[i]] += 1;
}//计数
li.Clear();
for (int i = 0; i < countList.Count; i++)//输出
{
for (int j = 0; j < countList[i]; j++)
{
li.Add(i);
}
}
}
测试一下