Ai
1 Star 1 Fork 0

AndyZhang/C-Sharp-Algorithms

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
CountingSorter.cs 1.37 KB
一键复制 编辑 原始数据 按行查看 历史
using System;
using System.Collections.Generic;
using Algorithms.Common;
namespace Algorithms.Sorting
{
public static class CountingSorter
{
public static void CountingSort(this IList<int> collection)
{
if (collection == null || collection.Count == 0)
return;
// Get the maximum number in array.
int maxK = 0;
int index = 0;
while (true)
{
if (index >= collection.Count)
break;
maxK = Math.Max(maxK, collection[index] + 1);
index++;
}
// The array of keys, used to sort the original array.
int[] keys = new int[maxK];
keys.Populate(0); // populate it with zeros
// Assign the keys
for (int i = 0; i < collection.Count; ++i)
{
keys[collection[i]] += 1;
}
// Reset index.
index = 0;
// Sort the elements
for (int j = 0; j < keys.Length; ++j)
{
var val = keys[j];
if (val > 0)
{
while (val-- > 0)
{
collection[index] = j;
index++;
}
}
}
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/strongandyzhang/C-Sharp-Algorithms.git
git@gitee.com:strongandyzhang/C-Sharp-Algorithms.git
strongandyzhang
C-Sharp-Algorithms
C-Sharp-Algorithms
master

搜索帮助