• 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;
            }
        }
  • 相关阅读:
    php 生成带图片的二维码
    ajax 请求 添加正在加载中 遮罩层
    uedit上传图片时文件选择框延迟弹出的解决方法
    gulp基本用法
    JS引擎的执行机制
    前端知识体系
    css基础
    gulp使用入门
    AngularJS最佳实践
    Restful API 待更新。。。
  • 原文地址:https://www.cnblogs.com/professional-NET/p/4929049.html
Copyright © 2020-2023  润新知