快速排序算法(c#)实现

来源:互联网 发布:淘宝骗 编辑:程序博客网 时间:2024/04/29 10:18
namespace BackPackProblem{    class Program    {        static void Main(string[] args)        {            int[] profit = { 3, 2, 7, 1, 4 };            BackPack _bp = new BackPack(profit);            int start = 0;            int end = profit.Length - 1;            _bp.quickSort(profit, start, end);            _bp.print();        }    }    class BackPack    {        private int[] profit;        public BackPack(int[] _profit)        {            this.profit = _profit;        }        //快速排序:一次划分算法        public int partiton(int[] array,int _start,int _end)        {            int start = _start;            int end = _end;            while (start < end)            {                while ((start < end) && (array[start] > array[end]))                {                    end--;                }                if (start < end)                {                    int temp = array[start];                    array[start] = array[end];                    array[end] = temp;                    start++;                }                while ((start < end) && (array[start]>array[end]))                {                    start++;                }                if (start < end)                {                    int temp = array[start];                    array[start] = array[end];                    array[end] = temp;                    end--;                }                            }            return start;        }        //用快速排序法:实现对数组从大到下的排序        public void quickSort(int[] array,int start,int end)        {            if (start < end)            {                int pivot = partiton(array, start, end);                quickSort(array, start, pivot - 1);                quickSort(array, pivot + 1, end);            }                   }        public void print()        {            for (int i = 0; i < profit.Length; i++)                Console.Write(profit[i] + " ");            Console.WriteLine();        }    }}
原创粉丝点击