在前面的章节中详细的讲解分析了十大经典排序算法,本文将进行一个大总结。

Tip 为了演示更加清楚,本文中所有的动画都放慢了速度,因此GIF大小对比之前会有所增大,图片加载速度会变慢。

排序算法是《数据结构与算法》中最基本的算法之一。

排序算法可以分为内部排序外部排序

内部排序是数据记录在内存中进行排序。

而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。

常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。

用一张图概括:

关于时间复杂度:

  1. 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。

  2. 线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序;

  3. O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序

  4. 线性阶 (O(n)) 排序 基数排序,此外还有桶、箱排序。

关于稳定性:

  1. 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。

  2. 不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。

 冒泡排序

 选择排序

 插入排序

希尔排序

 归并排序

 快速排序

堆排序

计数排序

桶排序

 基数排序


文章思路开源项目地址:https://github.com/hustcc/JS-Sorting-Algorithm,整理人 hustcc。


©著作权归作者所有:来自51CTO博客作者mb5fe18fab305a5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 五分钟学算法:二叉树的后序遍历
  2. 一道让你拍案叫绝的算法题
  3. 看动画轻松理解「链表」实现「LRU缓存淘汰算法」
  4. 啥是佩奇排名算法
  5. 加权随机算法的python实现
  6. 动画:面试算法之重建二叉树
  7. 【决战西二旗】|理解Sort算法
  8. 数据分析师还是算法工程师|用数据多角度解读如何选择
  9. 动画:面试算法之求二叉树的下一节点

随机推荐

  1. Linux下如何备份恢复和查看硬盘MBR与分区
  2. 008_Linux驱动之_IO口的配置
  3. 将JSON文件中的所有时间戳转换为bash(Ubu
  4. Linux时区设置和时间同步-基于CentOS 6(最
  5. VMware Workstation虚拟机平台安装Linux-
  6. 小记——inotify文件监控
  7. Linux技巧:如何利用Putty连接Linux主机
  8. Linux--常用命令--last
  9. 配置 limits.conf 限制 Linux 用户登录数
  10. 8.24 linux c socket 简单实现