c 计数排序代码
时间: 2024-03-17 17:33:46 浏览: 20
计数排序是一种用于整数排序的线性时间复杂度的排序算法。以下是一个示例的计数排序代码:
```csharp
public static void CountingSort(int[] arr)
{
int max = arr[0];
int min = arr[0];
// 找到数组中的最大值和最小值
for (int i = 1; i < arr.Length; i++)
{
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
// 创建计数数组,长度为最大值与最小值之差加1
int[] count = new int[max - min + 1];
// 统计每个元素出现的次数
for (int i = 0; i < arr.Length; i++)
{
count[arr[i] - min]++;
}
// 根据计数数组重新排序原数组
int index = 0;
for (int i = 0; i < count.Length; i++)
{
while (count[i] > 0)
{
arr[index++] = i + min;
count[i]--;
}
}
}
```