算法 二

求中点
L+R,可能溢出
除以2,等同于右移一位
在这里插入图片描述

递归、递归的时间复杂度

母问题的规模
子问题的规模,且都相等
调用次数
不用展开看,就看一层。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

归并排序

在这里插入图片描述
在这里插入图片描述
时间复杂度降低的原因:没有浪费比较。比如选择排序,第一轮选择最小的,第二轮选择次小的,浪费了大量的比较。而归并排序,排好序后,进行更大的融合。

归并排序的扩展
在这里插入图片描述
小和问题:
等同于,第一个数1,有4个数比1大,所以产生4个1。以此类推。
利用归并排序,一边排序,一边计算。直到排好序,计算出结果。

在这里插入图片描述
左框的1,右框有7个数比1大,所以产生7个1的小和。7个,不是比出来的,是直接计算数组长度得来的。所以时间复杂度降低了。
注意:小和问题,左右框指针的数相等时,需要先拷贝右框的数。

逆序对
左侧比所有的右侧大的对
在这里插入图片描述

快排

在这里插入图片描述
问题一
小于等于区、指针
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
小于等于区在向右不断扩大

问题二
在这里插入图片描述
快排,首先随机选一个数,和最后一个位置做交换。然后利用荷兰国旗问题二排序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值