最常用的 8 个排序算法:从原理到改进,再到代码兑现透彻解析

作者/分享人:jack
向 Ta 提问
北京林业大学硕士研究生,工作三年多,现在某工业互联网公司从事算法研究,参与多个项目和公司产品研发,乐于知识分享,创办机器学习,深度学习相关的系统入门学习之微信公众号《算法channel》。

越到最后,你越会明白算法和数据结构很 cool,很 essential。这些都是内功,和用什么语言、技术或框架无关。本场 Chat 的主要内容包括:

  • 8 个主要排序算法的思想和原理图解,代码兑现
  • 从冒泡排序到快速排序做的那些优化
  • 从直接选择排序到堆排序做的那些改进
  • 从直接插入排序到希尔排序做的那些改进
  • 归并排序算法的过程图解
  • 不基于比较的基数排序原理图解

实录提要:

  • 在日常的开发中排序操作的应用都有哪些?
  • 无序序列到有序的本质是什么?
  • 排序操作主要考虑哪些指标?
  • 什么样的场景需要稳定性?什么样不需要?
  • 递归调用的开销是怎么算的,递归的总数吗?需不需要考虑递归的栈消耗?
  • 为什么排序操作要区分关键码是值类型还是引用类型?
  • Java 中 Sort 接口结合了哪几种排序算法?
  • 选用插入排序还是快速排序时数字7是怎么选取的?基于经验吗?有没有数学依据?
  • 插入排序,快速排序,归并排序,它们各自的算法思想是什么?
  • 什么是稳定排序算法,稳定是基于什么来说的?
  • 为什么快速排序是通常被认为在同数量级的排序方法中平均性能最好的?
已有296人预订
预订达标
文章出炉
交流日期
     
17.11.08
17.11.21
17.11.28 20:30
查看文章评论/提问
佳殷
哈哈哈 厉害了 继续努力啊~~
jack: 谢谢鼓励!我会继续努力。。。
 小霞
不错 不错!
 小霞: 期待分享哈!👏👏👏
jack: 谢谢
TTTTTUSKIIIIIII
看算法第四版辅以本文效果会更好
。。
选择排序是不稳定的算法。。。
你可能还喜欢
初探 Metasploit 漏洞框架
肖志华
使用 Mpvue 开发微信小程序的最佳实践
美团点评技术团队
Java 优化方案:设计模式
Array老师
普通程序员如何快速提升自己
王俊生
使用 Python 全栈打造淘宝客微信机器人
州的先生
大厂面试官亲述:0~3年移动研发工程师必备技能
richardcao
微信扫描登录