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

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

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

标签: 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C# 判断指定URL地址是否可以正常访问

下一篇:C#监控文件或目录的变化