2024年第十五届蓝桥杯C/C++大学B组题 B逆序对期望

前言:“语文是读懂题目的前提,数学是做对题目的基础。”当两者都不兼备的时候,那就把这题让了吧。逆序对是什么?期望又是什么?这是博主当时在做这道题目的真实想法。现在想想,无论是逆序对还是期望,二者任意一个概念不清楚都不太可能做出来,所以本道题目的复盘工作把时间都花在了收集资料上(绝对不是玩了一个五一假期的缘故

 一、题目分析

       逆序对,简单来讲是一组值与排序不相符的数字,例如(3,2)在顺序(自然数排序)排序里就是一对逆序对,因为3排在了2之前,但是3的值要比2大,不符合排序的标准换成数组来理解就比较清晰了。假设有一个顺序数组 a[10],里面存放了1,2,3……10等数字,但是其中有一对数字的位置互换了,遍历整个数组,就会出现 i < j,而a[ i ] > a[ j ]的情况,这个时候我们就称 i 和 j 为一组逆序对那么我们也会明锐的觉察到,如果一个顺序数列的开头和结尾的位置互换了,那么从头开始往后数的每一个数字都能和首个数字组成一组逆序对,这种情况下出现的逆序对的数量是最多的。因此,不同位置的交换会影响逆序对数量,我们需要一一例举出每种交换位置的情况

       求逆序数,可以通过基本的双重循环遍历去寻找,但是程序的时间复杂度比较大,再嵌套进必要的循环里,运行时间就会非常长了,本人也是不大喜欢dfs类的解法,所以在这里我们使用归并算法进行求逆序对的这个操作。

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值