zoukankan      html  css  js  c++  java
  • c#快速排序

    快速排序是先将大的值和小的值分成2组再进行比较整合输出最后排序结果;

      var arry = new int[] { 5, 45, 63, 8, 52, 99, 34 }; //建立数组
            QuickSort(arry, 0, arry.Length - 1);
            foreach (var t in arry)
            {
                Response.Write(t+"
    ");       //输出排序后的结果
            }
        /// <summary>
        /// 快速排序算法
        /// </summary>
        /// <param name="data">排序数组</param>
        /// <param name="leftpos">下限</param>
        /// <param name="rightpos">上限</param>
        static void QuickSort(IList<int> data, int leftpos, int rightpos)
        {
            while (true)
            {
                var middle = data[(rightpos + leftpos) / 2]; //中间值
                var i = leftpos;       //移动上下标
                var j = rightpos;
                do        //循环知道分割为2个序列
                {
                    while (data[i] < middle && i < rightpos)   //扫描中值左边的序列
                        i++;
                    while (data[j] > middle && j > leftpos)   //扫描中值右边的序列
                        j--;
                    if (i > j) continue;   
                    var temp = data[i];       //知道可交互的值交换数据
                    data[i] = data[j];
                    data[j] = temp;
                    i++;
                    j--;
                } while (i <= j);
                {
                    if (j > leftpos)  //递归对比分割点元素都小的那个序列进行快速排序
                        QuickSort(data, leftpos, j);
                    if (i < rightpos)
                    {              //递归对比分割点元素都大的那个歌序列进行快速排序
                        QuickSort(data,i,rightpos);
                    }
                }
    
                break;
            }
        }
  • 相关阅读:
    结对第一次—原型设计(文献摘要热词统计)
    第一次作业-准备篇
    Alpha冲刺Day9
    Alpha冲刺Day8
    Alpha冲刺Day7
    Alpha冲刺Day6
    Alpha冲刺Day5
    Alpha冲刺Day4
    Alpha冲刺Day3
    Alpha冲刺Day2
  • 原文地址:https://www.cnblogs.com/professional-NET/p/4929049.html
Copyright © 2011-2022 走看看