C#疾速排序算法實例剖析。本站提示廣大學習愛好者:(C#疾速排序算法實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#疾速排序算法實例剖析正文
本文實例講述了C#疾速排序算法。分享給年夜家供年夜家參考。詳細完成辦法以下:
public static int[] QuickSort(int[] arr) { if (arr.Length <= 1) return arr; int pivot = arr.Length - 1; int[] less = GetLessThanEqualToPivot(arr, pivot); int[] greater = GetGreaterThanPivot(arr, pivot); return Concatenate(QuickSort(less),arr[pivot],QuickSort(greater)); } public static int[] Concatenate(int[] less,int pivotElement,int[] greater) { List<int> _result = new List<int>(); _result.AddRange(less); _result.Add(pivotElement); _result.AddRange(greater); return _result.ToArray(); } public static int[] GetLessThanEqualToPivot(int[] arr, int pivot) { List<int> _result = new List<int>(); for (int i = 0; i < arr.Length - 1; i++) { if (arr[i] <= arr[pivot]) { _result.Add(arr[i]); } } return _result.ToArray(); } public static int[] GetGreaterThanPivot(int[] arr, int pivot) { List<int> _result = new List<int>(); for (int i = 0; i < arr.Length - 1; i++) { if (arr[i] > arr[pivot]) { _result.Add(arr[i]); } } return _result.ToArray(); }
願望本文所述對年夜家的C#法式設計有所贊助。