C# 实现快读排序算法

最近和朋友讨论了快速排序算法,用MATLAB写了一个,我们计划写在新书的前言中

今天,用C#再实现一遍

    class Program
    {
        static void Main(string[] args)
        {
            var data = new List() { 10, 4, 5, 3, 1, 6, 8, 6, 2 };
            var sort_data = FunQSort(data);
            sort_data.ForEach(item => Console.Write(item+" "));

        }

        private static List FunQSort(List data)
        {
            if (data.Count < 2)
                return data;
            var pivot = data.ElementAt(0);
            data.RemoveAt(0);
            var left = data.FindAll(item => item <= pivot);
            var right = data.FindAll(item => item > pivot);
            var newList = new List() { pivot };
            newList.InsertRange(0, FunQSort(left));
            newList.AddRange(FunQSort(right));
            return newList;
        }
    }

 

你可能感兴趣的:(C#)