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

c#
2015-05-02 0 284
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# C# 快速排序算法演示代码 http://www.ox520.com/11887.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务