【数据结构】冒泡排序、直接插入排序、希尔排序详解!

1. 冒泡排序🍎

  • 🐧 基本思想:
    比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    大的数据往下沉(可以理解为:大的数据往最右边放),小的数据往上冒,每次都能把一个未排好序列中一个最大的数据放到其合适的位置。
    所以冒泡排序法是最右边的数据从右往左变得慢慢有序(每次都能当前未排序的最大数据到当前末尾正确位置)

在这里插入图片描述

  • 🐧 时间复杂度:O( n 2 n^2 n2),最好的情况,待排序的数据几乎有序( O(n) )
  • 🐧 稳定新:稳定的

在这里插入图片描述



2. 直接插入排序🍎

  • 🐧 基本思想:
    在这里插入图片描述

  • 🐧 时间复杂度:O( n 2 n^2 n2),最好的情况( O(n) )
    注意:❗直接插入排序的效率是比冒泡排序的效率高的。

  • 🐧 以下代码分析:
    注意❗:直接插入排序,是把一个数据插入到一个有序的序列中。

在这里插入图片描述


3. 希尔排序(缩小增量排序)🍎

  • 🐧 基本思想:🍳简单来说就两个步骤
    ① 先进行预排序
    在这里插入图片描述

    ② 再进行直接插入排序


  • 🐧 思路的过程如下:🍳

在这里插入图片描述

  • 🐧 时间复杂度:O(n^1.3),注意它的效率是低于 O(n l o g 2 n log_2n log2n ) 级别排序算法的。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小Jie努力认真找工作

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值