fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Test
  6. {
  7. private static int comparisons = 0;
  8.  
  9. public static void Main()
  10. {
  11. var r = new Random();
  12. var input = new int[1000];
  13.  
  14. for (int i = 0; i < input.Length; i++) {
  15. input[i] = r.Next();
  16. }
  17.  
  18. var sorted = quicksortArray(input).ToArray();
  19.  
  20. Console.WriteLine(comparisons);
  21. }
  22.  
  23. public static T[] quicksortArray<T>(T[] input) where T : IComparable<T>{
  24. if (input.Count() <= 1) return input;
  25. var pivot = input.FirstOrDefault();
  26. var lesser = quicksortArray(input.Skip(1).Where(i => {
  27. comparisons++;
  28. return i.CompareTo(pivot) <= 0;
  29. }).ToArray());
  30. var greater = quicksortArray(input.Where(i => {
  31. comparisons++;
  32. return i.CompareTo(pivot) > 0;
  33. }).ToArray());
  34. return lesser.Concat(new T[] { pivot }).Concat(greater).ToArray();
  35. }
  36. }
Success #stdin #stdout 0.01s 131648KB
stdin
Standard input is empty
stdout
24916