数据结构简记✏️ | 排序基础(动画演示)

🚀 算法具体实现:常见排序算法

冒泡排序(Bubble Sort)

  • 动画演示

Bubble


选择排序(Selection Sort)

一、简单选择排序

  • 动画演示

Seclection

二、堆排序(Heap Sort)

  • 基本思想:利用堆的特性进行排序,以大顶堆为例。首先将待排序的序列建成一个大顶堆,得到最大值结点,再将堆顶结点与堆尾结点交换位置,堆长度减1(最大记录排序到位);然后调整剩余结点为堆,得到次最大值,重复该过程。😚
  • 稳定性不稳定
  • 时间复杂度:最坏情况下为 O ( n l o g n ) O(nlogn) O(nlogn)
  • 空间复杂度 O ( 1 ) O(1) O(1)。🤭
  • 动画演示

Heap


插入排序(Insertion Sort)

一、直接插入排序

  • 基本思想:每次将无序区的第一个记录按关键字插入到有序区的合适位置,并将有序区的长度加1。🥶
  • 稳定性稳定
  • 时间复杂度:最坏情况下为 O ( n 2 ) O(n^2) O(n2)。🧐
  • 空间复杂度 O ( 1 ) O(1) O(1)
  • 动画演示

Insertion

二、希尔排序(Shell Sort)

  • 基本思想对直接插入排序的改进。先将整个待排序列按增量 d d d划分为 d d d个子序列,然后分别对各个子序列进行直接插入排序;不断减小 d d d,重复该过程,直到 d d d减小为1。
  • 稳定性不稳定。🤯
  • 时间复杂度:取决于所取增量序列的函数。
  • 动画演示

Shell


归并排序(Merge Sort)

  • 基本思想:将待排序列递归分解成若干个长度大致相等的有序子序列,再将这些子序列合并为整体有序的序列。
  • 稳定性稳定
  • 时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)
  • 空间复杂度 O ( n ) O(n) O(n)。🤠
  • 动画演示

Merge


快速排序(Quick Sort)

  • 基本思想:对冒泡排序的改进。先在整个待排序列中选择一个记录作为枢轴,通过关键字与枢轴的比较把整个待排序列分为前后两个子序列,前面的关键字都不大于枢轴,后面的关键字都不小于枢轴;此时枢轴已到位,再按同样方法将两个子序列分别进行快排。🤓
  • 稳定性不稳定。🤪
  • 时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)
  • 动画演示

Quick


计数基数排序(Radix Sort)

  • 基本思想:先将所有关键字统一为相同的位数,位数不够的前面补0,然后从最低位开始依次排序,直到最高位排序完成。计数基数排序无须进行关键字比较,主要操作是分配和收集
  • 稳定性稳定
  • 时间复杂度 O ( n ) O(n) O(n)。🥳
  • 空间复杂度 O ( n ) O(n) O(n)
  • 动画演示

Radix

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值