数据结构——排序算法
然后就去远行吧
我们的目标是星辰大海~
展开
-
数据结构——归并排序
1. 归并排序分治模型在每层递归时都有三个步骤:分解原问题为若干子问题,这些子问题是原问题的规模较小的实例;解决这些子问题,递归地求解各子问题。然而,若子问题的规模足够小,则直接求解;合并这些子问题的解成原问题的解;归并排序算法完全遵循分治模式。直观上其操作如下:分解:分解待排序的n个元素的序列成各具有n/2个元素的两个子序列;解决:使用归并排序递归地排序两个子序列;合并:合...原创 2020-02-23 00:26:18 · 230 阅读 · 0 评论 -
数据结构——快速排序
先来简单看一遍一些基本排序的情况:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。1. 快速排序对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)O(n^2)O(n2)的排序算法。虽然最坏情况时间复杂度很高,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能...原创 2020-02-22 22:16:51 · 871 阅读 · 0 评论 -
数据结构——堆排序
先来简单看一遍一些基本排序的情况:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。1. 堆排序与归并排序一样,但不同于插入排序的是,堆排序的时间复杂度是O(nlgn)O(nlgn)O(nlgn)。而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性(原址性的定义看下面的黑体字)...原创 2020-02-22 00:27:43 · 437 阅读 · 0 评论 -
数据结构——插入排序
先来简单看一遍一些基本排序的情况:稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。插入排序插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的...原创 2020-02-21 19:48:22 · 184 阅读 · 0 评论