Java教程

北航算法与分析课程笔记(五)

本文主要是介绍北航算法与分析课程笔记(五),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法设计与分析

2022 1.17 by ponytail


文章目录

      • 逆序对计数问题
        • 问题背景
          • 逆序对
          • 形式化定义
        • 解决方案
          • 1.蛮力枚举
          • 2.分而治之
            • 重点:求解S3
            • 分析
            • 利用归并排序
            • 伪代码
        • 小结
            • 问题:分冶策略的关键是什么?

逆序对计数问题

问题背景

逆序对

逆序对:当i<j时,A[I]>A[j]的二元组(A[i],A[j])

形式化定义

在这里插入图片描述

解决方案

1.蛮力枚举

对于数组的每个元素A[i],枚举j(j>i),并统计逆序对个数。

时间复杂度:O(n2)

2.分而治之

在这里插入图片描述

类比最大子数组问题,有跨中间问题

重点:求解S3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DRs9UUXW-1642418668676)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117164502446.png)]

运行时间受限于跨越子数组的逆序对计数方法!

而数组的有序性通常有助于提高算法的运行时间!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JUcsS9I3-1642418668676)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117164928445.png)]

分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LUiCSNiP-1642418668676)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117165108284.png)]

利用归并排序

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JL4Fb0N1-1642418668676)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117165758339.png)]

伪代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nMOLrNzt-1642418668677)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117165928900.png)]

小结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ETQdn2Xn-1642418668677)(C:\Users\Lenovo\AppData\Roaming\Typora\typora-user-images\image-20220117170356923.png)]

问题:分冶策略的关键是什么?

答案:合理设计合并求解算法

这篇关于北航算法与分析课程笔记(五)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!