using System.Diagnostics;
using System.Collections.Generic;
var random = new Random();
var testData = Enumerable.Range(0, arraySize).Select(x => random.Next(0, arraySize)).ToArray();
var stopwatch = new Stopwatch();
Console.WriteLine($"Custom quicksort: {stopwatch.ElapsedTicks} ticks, {stopwatch.ElapsedMilliseconds} milliseconds");
Console.WriteLine($"Array.Sort: {stopwatch.ElapsedTicks} ticks, {stopwatch.ElapsedMilliseconds} milliseconds");
static IEnumerable<T> QuickSort<T>(IEnumerable<T> i) where T : IComparable
var p = i.ElementAt(new Random().Next(0, i.Count() - 1));
return QuickSort(i.Where(x => x.CompareTo(p) < 0)).Concat(i.Where(x => x.CompareTo(p) == 0)).Concat(QuickSort(i.Where(x => x.CompareTo(p) > 0)));