一直对函数式编程的魔力所吸引,对λ演算来简化编程,对动态语言的特性有很浓厚的兴趣,也自学查找多方资料,现在列举一个我冥思苦想了好久才真正懂得的函数式的快速排序。

        /// <summary>/// 快速排序函数/// </summary>/// <typeparam name="T"></typeparam>/// <param name="list"></param>/// <returns></returns>        IEnumerable<T> QuickSorting<T>(IEnumerable<T> list) where T : IComparable<T>        {

if (list.Count() <= 1) return list;

            var pivot = list.First();

return QuickSorting(list.Where(x => x.CompareTo(pivot) < 0))                           .Concat(list.Where(x => x.CompareTo(pivot) == 0))                           .Concat(QuickSorting(list.Where(x => x.CompareTo(pivot) > 0)));

        }

测试方法:

        static void Main(string[] args)        {            List<int> ints = new List<int>            {22,33,11,43,55,123,452,1,3,5,15,153,10000,532,553,22,33,11,53,11,33            };            List<int> lists = new Program().QuickSorting<int>(ints).ToList<int>();

            lists.ForEach(A => Console.WriteLine(A));        }

测试结果:

正确…………!!

亲爱的读者……你看懂了么……

转载于:https://www.cnblogs.com/TianMaiCheng/archive/2011/08/26/2154756.html

三行代码实现快速排序相关推荐

  1. Python新工具:用三行代码提取PDF表格数据

    点击上方"视学算法",星标公众号 重磅干货,第一时间送达 项目作者:vinayak mehta 参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个 ...

  2. Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch

    Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch 能够灵活地调用各种语言模型,一直是 NLP 研究者的期待.近日 HuggingFace 公司开源了最新的 Tra ...

  3. 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。...

    (转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...

  4. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件

    今天需要处理几个比较大的 txt 文件,每个文件都在 2GB 以上,直接用 Excel 将其转换成 csv 文件显然是不太可行的,于是用 Python 中的数据处理神器 Pandas,三行代码就能搞定 ...

  5. python封装sql脚本 github_Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码...

    原标题:Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码 在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使 ...

  6. paddlepaddle系列之三行代码从入门到精通

    PaddlePaddle系列之三行代码从入门到精通 前言 这将是PaddlePaddle系列教程的开篇,属于非官方教程.既然是非官方,自然会从一个使用者的角度出发,来教大家怎么用,会有哪些坑,以及如何 ...

  7. web怎么用代码创造表格_Python新工具:用三行代码提取PDF表格数据

    机器之心报道 项目作者:vinayak mehta参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提 ...

  8. Java三行代码搞定MD5加密

    Java三行代码搞定MD5加密 https://www.dexcoder.com/selfly/article/4026 public class MD5Test {public static voi ...

  9. 链表快速排序python_Python一行代码实现快速排序的方法

    今天将单独为大家介绍一下快速排序! 一.算法介绍 排序算法(Sorting algorithm)是计算机科学最古老.最基本的课题之一.要想成为合格的程序员,就必须理解和掌握各种排序算法.其中" ...

最新文章

  1. CV_IMAGE_ELEM参数赋值时注意的问题
  2. 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...
  3. Nginx详细安装部署教程
  4. (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
  5. WiFi 6 目前还不适合个人用户
  6. 很WEB很2.0---ThunderBird
  7. 获取本机IP可区分系统可区分虚拟机和本机java程序跨平台
  8. CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
  9. 一阶广义差分模型_计量经济学习题第5章 自相关性
  10. 考研报考人数的灰色模型
  11. 《游戏系统设计三》游戏服务器线上出bug,怎么办?急,在线等!热更新
  12. 多个模型融合训练神经网络-devise模型的实现
  13. matlab rti dds,[译]*RTI_DDS测试
  14. 明清时期华北宗族的发展——以山西洪洞刘氏为例
  15. windows保护无法启动修复服务器,命令修复Win10系统提示Windows 资源保护无法启动修复服务的解决方法...
  16. Online Tracking by Learning Discriminative Saliency Map with Convolutional Neural Network
  17. 官方教程之短视频app源码接入openinstall实现免填邀请码功能
  18. 【火炉炼AI】机器学习031-KNN回归器模型的构建
  19. 微信小程序 开发工具 项目创建步骤
  20. 电脑本机连了VPN 在虚拟机中没有连接 如何虚拟机共享主机VPN连接

热门文章

  1. JZOJ 5221. 【GDOI2018模拟7.10】A
  2. 卸载后清理干净_想要清理你的Mac?选这几款软件就对了
  3. 最短路上的统计(Floyd)
  4. 试卷批分pascal程序
  5. AtCoder AGC030F Permutation and Minimum (DP、计数)
  6. mysql为什么表大了要重建_为什么MySQL分库分表后总存储大小变大了?
  7. python后端服务器_毕设里配合Python后端使用的所谓”CGI服务器“
  8. pip更换源 windows10_Conda及Pip换源处理
  9. log python_基于Python log 的正确打开方式
  10. python中json模块博客园_python的json模块