为什么插入排序比冒泡排序更受欢迎?

插入排序和冒泡排序的时间复杂度相同,都是 O(n²)。尽管如此,插入排序在实际应用中更受欢迎,因为其在元素交换时仅需一次赋值操作,而冒泡排序需要三次。在大数据量排序时,这种差异可能导致显著的性能差距。此外,插入排序是稳定的排序算法,适合处理排序需求中存在相等元素的情况。
摘要由CSDN通过智能技术生成

1. 插入排序和冒泡排序的时间复杂度

 

   插入排序和冒泡排序的时间复杂度相同,都是 O(n2),在实际的软件开发里,为什么我们更倾向于使用插入排序算法而不是冒泡排序算法呢?

 

2. 先看一下排序算法的几个概念

1.原地排序

    原地排序(Sorted in place)。原地排序算法,就是特指空间复杂度是 O(1) ,的排序算法;因为只需要定义变量来交互值,所以为O(1)。

2.排序算法的稳定性

    仅仅用执行效率和内存消耗来衡量排序算法的好坏是不够的。针对排序算法,我们还有一个重要的度量指标,稳定性。这个概念是说,如果待排序的序列中存在值相等的元素,经过排序之后,相等元素之间原有的先后顺序不变。

    比如我们有一组数据 2,9,3,4,8,3,按照大小排序之后就是 2,3,3,4,8,9。这组数据里有两个 3。经过某种排序算法排序之后,如果两个 3 的前后顺序没有改变,那我们就把这种排序算法叫作稳定的排序算法;如果前后顺序发生变化,那对应的排序算法就叫作不稳定的排序算法。

    两个 3 哪个在前,哪个在后有什么关系啊,稳不稳定又有什么关系呢?为什么要考察排序算法的稳定性呢?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值