三行代码实现快速排序
一直对函数式编程的魔力所吸引,对λ演算来简化编程,对动态语言的特性有很浓厚的兴趣,也自学查找多方资料,现在列举一个我冥思苦想了好久才真正懂得的函数式的快速排序。
/// <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
三行代码实现快速排序相关推荐
- Python新工具:用三行代码提取PDF表格数据
点击上方"视学算法",星标公众号 重磅干货,第一时间送达 项目作者:vinayak mehta 参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个 ...
- Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch
Transformers2.0让你三行代码调用语言模型,兼容TF2.0和PyTorch 能够灵活地调用各种语言模型,一直是 NLP 研究者的期待.近日 HuggingFace 公司开源了最新的 Tra ...
- 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。...
(转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...
- python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
今天需要处理几个比较大的 txt 文件,每个文件都在 2GB 以上,直接用 Excel 将其转换成 csv 文件显然是不太可行的,于是用 Python 中的数据处理神器 Pandas,三行代码就能搞定 ...
- python封装sql脚本 github_Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码...
原标题:Github 大牛封装 Python 代码,实现自动发送邮件只需三行代码 在运维开发中,使用 Python 发送邮件是一个非常常见的应用场景.今天一起来探讨一下,GitHub 的大牛门是如何使 ...
- paddlepaddle系列之三行代码从入门到精通
PaddlePaddle系列之三行代码从入门到精通 前言 这将是PaddlePaddle系列教程的开篇,属于非官方教程.既然是非官方,自然会从一个使用者的角度出发,来教大家怎么用,会有哪些坑,以及如何 ...
- web怎么用代码创造表格_Python新工具:用三行代码提取PDF表格数据
机器之心报道 项目作者:vinayak mehta参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提 ...
- Java三行代码搞定MD5加密
Java三行代码搞定MD5加密 https://www.dexcoder.com/selfly/article/4026 public class MD5Test {public static voi ...
- 链表快速排序python_Python一行代码实现快速排序的方法
今天将单独为大家介绍一下快速排序! 一.算法介绍 排序算法(Sorting algorithm)是计算机科学最古老.最基本的课题之一.要想成为合格的程序员,就必须理解和掌握各种排序算法.其中" ...
最新文章
- CV_IMAGE_ELEM参数赋值时注意的问题
- 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...
- Nginx详细安装部署教程
- (王道408考研操作系统)第五章输入/输出(I/O)管理-第一节1:I/O设备的概念和分类
- WiFi 6 目前还不适合个人用户
- 很WEB很2.0---ThunderBird
- 获取本机IP可区分系统可区分虚拟机和本机java程序跨平台
- CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
- 一阶广义差分模型_计量经济学习题第5章 自相关性
- 考研报考人数的灰色模型
- 《游戏系统设计三》游戏服务器线上出bug,怎么办?急,在线等!热更新
- 多个模型融合训练神经网络-devise模型的实现
- matlab rti dds,[译]*RTI_DDS测试
- 明清时期华北宗族的发展——以山西洪洞刘氏为例
- windows保护无法启动修复服务器,命令修复Win10系统提示Windows 资源保护无法启动修复服务的解决方法...
- Online Tracking by Learning Discriminative Saliency Map with Convolutional Neural Network
- 官方教程之短视频app源码接入openinstall实现免填邀请码功能
- 【火炉炼AI】机器学习031-KNN回归器模型的构建
- 微信小程序 开发工具 项目创建步骤
- 电脑本机连了VPN 在虚拟机中没有连接 如何虚拟机共享主机VPN连接
热门文章
- JZOJ 5221. 【GDOI2018模拟7.10】A
- 卸载后清理干净_想要清理你的Mac?选这几款软件就对了
- 最短路上的统计(Floyd)
- 试卷批分pascal程序
- AtCoder AGC030F Permutation and Minimum (DP、计数)
- mysql为什么表大了要重建_为什么MySQL分库分表后总存储大小变大了?
- python后端服务器_毕设里配合Python后端使用的所谓”CGI服务器“
- pip更换源 windows10_Conda及Pip换源处理
- log python_基于Python log 的正确打开方式
- python中json模块博客园_python的json模块