算法---快速排序

来源:互联网 发布:大华录像机网络设置 编辑:程序博客网 时间:2024/05/19 23:54

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);