C# 快速排序算法演示代碼

enpc 9年前發布 | 2K 次閱讀 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(); } </pre>

 本文由用戶 enpc 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!