八大排序算法

记忆口诀:

插帽龟(插入、冒泡、归并),它很稳(稳定)。

选帽插(选择、冒泡、插入),它很慌(“慌”谐音“方”,平方,即平均时间复杂度为O(n^{2}))。

恩老二(nlog_{2}n),快归队(快排、归并、堆排序)。

一、插入排序

和前面元素相比,找到对应位置插入。

二、希尔排序

对每一个子表进行直接插入排序。

步长d的初始值一般为元素个数折半,即\frac{n}{2}

每一个子表完成插入排序后,步长折半,不断迭代,直到步长为1。

三、冒泡排序

相邻元素两两相比,较大值/较小值不断往前冒。

四、快速排序

小放枢轴左,大放枢轴右,

高低所指换,换针向枢轴,

高低所遇点,枢轴所落处,

递归再排至,左右仅一头。

快速排序的运行时间与划分是否对称有关,其最坏情况发生在划分过程产生的两个区域分别包含(n-1)个元素和1个元素的时候。则T(n)满足

T(n)=\left\{\begin{matrix} O(1)&n\leq 1& \\ T(n-1)+O(n)&n> 1& \end{matrix}\right.

解此递归方程,可得T(n)=O(n^{2})

在最好情况下,每次划分所取的枢轴都恰好为中值,即每次划分都产生两个大小为\frac{n}{2}的区域。此时,T(n)满足

T(n)=\left\{\begin{matrix} O(1)&n\leq 1& \\ 2T(\frac{n}{2})+O(n)&n> 1& \end{matrix}\right.

其解为T(n)=O(nlogn)

五、简单选择排序

先扫,再找,往前放。

找到最小的元素后,和第一个元素交换。

不断迭代,直到遍历整个线性表。

六、堆排序

先建堆(大根堆),再找数。

找一次,建一次。

找到数,会输出(和最后的结点互换位置后输出)。

输出完,排序完。

七、归并排序

两有序并为一有序。

另建表,分别从两序列头依次对比。

八、基数排序

从最低位开始,按照该位数字依次填入。

看个位:

看十位:

参考视频:【【数据结构】八大排序算法过程详解】https://www.bilibili.com/video/BV1WP411c7hS?vd_source=816c40c22f794a17d5e5bbfafb0bce18

up主讲解的很清楚!😊👍

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值