《十大经典排序算法》简介

十大经典排序算法

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

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:

关于时间复杂度

  1. 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。
  2. 线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序;
  3. O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序
  4. 线性阶 (O(n)) 排序 基数排序,此外还有桶、箱排序。

关于稳定性

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

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

名词解释

n:数据规模

k:“桶”的个数

In-place:占用常数内存,不占用额外内存

Out-place:占用额外内存

稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同


GitBook 内容大纲

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 希尔排序
  5. 归并排序
  6. 快速排序
  7. 堆排序
  8. 计数排序
  9. 桶排序
  10. 基数排序

原著本来,没有 java版本算法排序,然后我从网络搜集整理一些,补充进去

内容几乎完全来源于网络。

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

GitBook 在线阅读地址:https://sort.hust.cc/

本项目使用 hint 进行中文 Markdown 文件的格式检查,务必在提交 Pr 之前,保证 Markdown 格式正确。

Contact

  • 作者:鹏磊
  • 出处:http://www.ymq.io
  • Email:admin@souyunku.com
  • 版权归作者所有,转载请注明出处
  • Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏章鱼的慢慢技术路

《算法图解》第四章笔记与课后练习

19550
来自专栏Java编程

10个有关String的面试问题

下面是面试中最容易问到的有关String的问题。

1.1K20
来自专栏云霄雨霁

设计模式----工厂方法模式

15200
来自专栏工科狗和生物喵

【计算机本科补全计划】《C++ Primer》:类型转换

正文之前 学习,不如爆文?反正晚上也不会学习,某个家伙也对我爱理不理的!!!!(这才是最骚的吧),刚好欠了 C++ Primer太多烂账了。不如赶紧还了! 对了...

31680
来自专栏转载gongluck的CSDN博客

python笔记:#007#变量

变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在...

34580
来自专栏杨熹的专栏

2 天入门 Java-Day 2

第二天的课程明显就比第一天的要难了,? 表示很吃力,脑子不够用的节奏。 各种概念绕来绕去,脑袋都要绕成了壳。 不过还好没有放弃,想个办法画出各概念间的联系,...

35590
来自专栏Crossin的编程教室

【Python 第18课】 bool类型转换

昨天最后留的几句关于bool类型的转换,其中有一行: bool('False') print一下结果,会发现是True。这是什么原因? 因为在pytho...

25340
来自专栏zhisheng

运算优先级、结合性、求值顺序、副作用和顺序点

标题中这几个概念,是很多C/C++程序员在表达式上容易出问题或不清楚的地方,虽然这些概念在很多语言都有体现,但C里面特别明显,所以就以C语言为例子总结下 运算...

53070
来自专栏Java帮帮-微信公众号-技术文章全总结

【Java提高四】接口与抽象类

【Java提高四】接口与抽象类 接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的...

37960
来自专栏诸葛青云的专栏

C语言夺命题十例,为啥C语言的总是这么恶趣味?

这些问题测试了C语言的高级知识,包括一些很少使用的特性。有效的C编程需要对诸如未定义的行为,递归和指针算术等概念有深入的理解,但是这些故意复杂的例子并不代表现实...

24730

扫码关注云+社区

领取腾讯云代金券