#region 快速排序 private void QuickSort(int[] _arr, int p, int r) { if (p < r) { int flag = Partition(_arr, p, r); QuickSort(_arr, p, flag - 1); QuickSort(_arr, flag + 1, r); } } private int Partition(int[] _array, int p, int r) { int i = p - 1, j = p; //int key = _array[r]; for (j = p; j < r; j++) { if (_array[j] <= _array[r]) { Swap(ref _array[++i], ref _array[j]); } } Swap(ref _array[i + 1], ref _array[r]); return i+1; } private void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } #endregion