我实施了3次QuickSort算法并测量了5000万随机数的排序时间:
顺序(花了~14秒)
与Parallel.Invoke()在相同的方法作为排序算法(使用了〜12秒)
与Parallel.Invoke()在单独的方法(使用了约7秒)的
所以我的问题是:Parallel.Invoke()如果呼叫是在一个单独的方法中,为什么会快得多?在我的计算机上,3.示例的速度是2的两倍多.
Parallel.Invoke()在相同的方法作为排序算法public class ParallelQuickSort
{
private const int Threshold = 100;
public static void Sort(int[] array)
{
if (array == null || array.Length == 0)
{
new ArgumentException("number array must be at least of length 1");
}
QuickSort(array, 0, array.Length - 1);
}
private static void QuickSort(int[] array, int left, int right)
{
var i = left;
var j = right; …Run Code Online (Sandbox Code Playgroud)