CShap 桶排序 源代码
时间: 2023-10-22 12:03:39 浏览: 86
下面是 C# 桶排序的源代码:
```csharp
using System;
class BucketSort
{
public static void Sort(int[] arr, int maxVal)
{
int[] bucket = new int[maxVal + 1];
for (int i = 0; i < bucket.Length; i++)
{
bucket[i] = 0;
}
for (int i = 0; i < arr.Length; i++)
{
bucket[arr[i]]++;
}
int pos = 0;
for (int i = 0; i < bucket.Length; i++)
{
for (int j = 0; j < bucket[i]; j++)
{
arr[pos++] = i;
}
}
}
static void Main(string[] args)
{
int[] arr = { 5, 3, 1, 2, 4 };
Console.WriteLine("Original array:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
BucketSort.Sort(arr, 5);
Console.WriteLine("Sorted array:");
for (int i = 0; i < arr.Length; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
}
}
```
在这个桶排序的实现中,我们首先创建了一个大小为 maxVal+1 的桶数组,并将其所有元素初始化为 0。然后,我们遍历输入数组,将每个元素的出现次数存储在对应的桶中。
接下来,我们通过遍历桶数组来重建排好序的数组。我们首先遍历桶数组中的每个元素,然后在内部循环中,我们将桶中的每个元素按照它们的出现次数添加到排好序的数组中。
最后,我们在主函数中演示了如何使用桶排序算法对一个整数数组进行排序。
阅读全文