源代码如下。
快速排序的基本思想已经体现了出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | using System; using System.Collections.Generic; using System.Text; namespace QuickSort { class Program { static void Main(string[] args) { //产生随机数 int[] array = new int[100000]; for (int i = 0; i < = 99999; i++) { if (i == 0) array[i] = (new Random()).Next(1000); else array[i] = (new Random(array[i - 1])).Next(1000); } QuickSort(ref array, 0, array.Length - 1); foreach (int i in array) Console.Write(i.ToString() + " "); Console.ReadLine(); } static void QuickSort(ref int[] array, int start, int end) { if (start == end - 1) return; if (start >= end) return; int i = 0, j = 0, k = 0, x = start, z = array[x]; i = start; j = end; while (i < j) { while (array[j] >= z && j > i) j--; if (i < j) array[i] = array[j]; while (array[i] <= z && j > i) i++; if (i < j) array[j] = array[i]; } array[i] = z; QuickSort(ref array, start, i - 1); QuickSort(ref array, i + 1, end); } } } |