使用不安全代码对字节数组进行排序的最快方法?

时间:2016-08-28 22:45:01

标签: c# sorting unsafe

根据我的知识,quicksort是最快的排序算法之一,因为这就是如何在框架中实现Array.Sort()函数。 有没有办法加快字节数组的排序,可能使用不安全的代码和指针?

1 个答案:

答案 0 :(得分:2)

对于字节数组,您可以考虑Counting sort,它按线性时间排序。

public static void Sort(byte[] a)
{
    int[] counts = new int[256];
    for (int i = 0; i < a.Length; i++)
        counts[a[i]]++;
    int k = 0;
    for (int i = 0; i < counts.Length; i++)
        for (int j = 0; j < counts[i]; j++)
            a[k++] = (byte)i;
}