1. Quick Sort class:
/// <summary> /// Quick sort class /// </summary> public class QuickSort { /// <summary> /// The main sort method of quick sort /// </summary> /// <param name="arr"></param> /// <param name="low"></param> /// <param name="high"></param> public static void Sort(int[] arr, int low, int high) { int pivotpos; if (low < high) { pivotpos = Partition(arr, low, high); Sort(arr, low, pivotpos - 1); Sort(arr, pivotpos + 1, high); } } /// <summary> /// Partition private method /// </summary> /// <param name="arr"></param> /// <param name="i"></param> /// <param name="j"></param> /// <returns></returns> private static int Partition(int[] arr, int i, int j) { int pivot = arr[i]; while (i < j) { while (i < j && arr[j] >= pivot) { j--; } if (i < j) { arr[i++] = arr[j]; } while (i < j && arr[i] <= pivot) { i++; } if (i < j) { arr[j--] = arr[i]; } } arr[i] = pivot; return i; } }
2. Main method:
int[] arr = { 9, 7, 6, 11, 3, 5 }; QuickSort.Sort(arr, 0, arr.Length - 1);