卜算法学习笔记-02-分而治之算法02

news/2024/4/29 11:45:15/文章来源:https://blog.csdn.net/weixin_44994838/article/details/126819432

数组中的逆序对计数

算法分析

所谓逆序对,是指数组中的两个元素 A[i]A[i]A[i]A[j]A[j]A[j],其下标 i<ji < ji<j,但是考察元素的值,却有 A[i]>A[j]A[i] > A[j]A[i]>A[j]
输入:一个包含 nnn 个元素的数组 A[0..n−1]A[0..n − 1]A[0..n1];
输出:数组中的逆序对的数目。
从最简单的实例入手:如果数组 A 只有两个元素 A[0] 和 A[1],我们只需比较这两个元素,即可计算出逆序数。
接下来我们考虑如何求解规模更大的实例。对于一个包含 nnn 个元素的数组 A,我们可以很容易地依据下标将 A 分解成两个小的数组,即左一半 A[0..⌈n2⌉−1]A[0..⌈ \frac{n}{2} ⌉ − 1]A[0..2n1](简记为 LLL)和右一半 A[⌈n2⌉..n−1]A[⌈ \frac{n}{2} ⌉..n − 1]A[⌈2n..n1](简记为 RRR)。在将大的实例分解成子实例之后,我们可以假定子实例已经求解,即使用递归调用分别求出两个元素都在 LLL 中的逆序对数目、 以及两个元素都在 RRR 中的逆序对数目;因此只剩下最后一个困难:如何将子实例的 解“组合”成原始给定实例的解。
逆序对计数算法中计算一个元素在右半边,一个元素在右半边的逆序对数目:如果 LLLRRR 都已经排好序的话,只需执行 O(n)O(n)O(n) 次比较即可完成逆序对的计数。
逆序对计数算法伪代码

时间复杂度

T(n)=2T(n2)+O(n)=O(nlog⁡n)T(n) = 2T(\frac{n}{2}) + O(n) = O(n \log n) T(n)=2T(2n)+O(n)=O(nlogn)

选择问题:对数组的归约

如何从数组中找出第 k 小的数
输入:一个包含 nnn 个元素的数组 A[0..n−1]A[0..n − 1]A[0..n1],以及一个整数 k,(0≤k≤n−1)k,(0 ≤ k ≤ n − 1)k(0kn1);
输出:数组 AAA 中第 kkk 小的元素。
采用依据元素值拆分数组的方案:
选择问题的通用框架

选择分组中位数的中位数作为中心元

算法分析

方法:将数组AAA分组,然后以组中位数作为AAA的近似,进而以组中位数的中位数作为中心元
可以看到,组中位数的中位数在该数前面和后面均有一定量的值大于和小于他们(可以计算,如分组数为mmm,每组有nnn个数,为了方便计算,假设m、nm、nmn都是奇数,那么比该数小的数至少有⌈n2⌉×⌈m2⌉−1\lceil \frac{n}{2} \rceil \times \lceil \frac{m}{2} \rceil - 12n×2m1,比组中位数的中位数大的数也有⌈n2⌉×⌈m2⌉−1\lceil \frac{n}{2} \rceil \times \lceil \frac{m}{2} \rceil - 12n×2m1个)
求解选择问题的BFPRT算法

时间复杂度分析

算法总共需要比较的次数不超过24n24n24n
T()≤T(n5)+T(7n10)+O(n)=O(n)T() \leq T(\frac{n}{5}) + T(\frac{7n}{10}) + O(n) = O(n) T()T(5n)+T(107n)+O(n)=O(n)

依据随机样本的统计量确定中间元

算法分析

构造数组的近似,一个直观的想法是对数组进行随机采样,以随机采样来近似数组,进而利用样本的统计量来确定中心元,比如采用样本中位数作为中心元,还进行一个扩展,不是只使用样本的中位数,而是使用14分位数和\frac{1}{4}分位数和41分位数和34\frac{3}{4}43分位数,将点估计扩展成区间估计。
假设随机采样的数量为rrr,采样rrr的元素得到的样本为SSS,之后计算出SSS的分位数uuuvvv,接着对每个元素都和uuuvvv比较,依据比较结果分别放入集合L,M,HL,M,HL,M,H,最后将MMM排序,返回其中位数作为数组的中位数估计:
依据随机样本的统计量确定中间元的方法

时间复杂度分析

对于一个包含nnn个元素的数组AAA,当设置r=n34,δ=n−14r = n^{\frac{3}{4}},\delta = n^{-\frac{1}{4}}r=n43,δ=n41,算法的期望时间复杂度是O(n)O(n)O(n),此时位于u,vu,vu,v区间的SSS中的元素共有n−14×rn^{-\frac{1}{4}} \times rn41×r个,所以可以期望位于u,vu,vu,v区间的AAA中的元素共有n−14×n=n34n^{-\frac{1}{4}} \times n = n^{\frac{3}{4}}n41×n=n43个,所以∣∣M∣∣||M||∣∣M∣∣不会太大也不会太小

采用随机选择的一个元素作中心元

算法分析

我们有12\frac{1}{2}21的概率选到中间区域的元素,所以连续迭代两轮,可以以很高的概率使得子问题的规模呈指数级降低
随机选择中心元

时间复杂度分析

可以看到将每两次算法执行作为一期
T(n)=T(3n4)+2n=O(n)T(n) = T(\frac{3n}{4}) + 2n = O(n) T(n)=T(43n)+2n=O(n)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_10299.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue项目实战-完成路由组件的搭建

vue项目实战-完成路由组件的搭建 1.安装vue-router npm i vue-router --save分析结构可知&#xff0c;路由组件有四个&#xff1a;Home、Search、Login、Register 2.创建路由组件文件夹pages以及各路由组件 3.配置路由 项目中配置路由一般配置在router文件夹中&#xff0c;…

工业智能网关BL110应用之八十一: 实现西门子S7-400 PLC 接入亚马逊云平台

LAN 接口的配置COM口采集西门子S7-400 PLC的配置 工业智能网关BL110一共有一 个LAN 接口&#xff0c;一个WAN接口&#xff0c;可以通过LAN 接口采集数据&#xff0c;通过WAN接口接入局域网&#xff0c;设置过程不一样&#xff0c;WAN接口可以自动获取IP以及相关以太网设置。 …

硅光电子器件模拟:“RSoft光电器件设计仿真技术与应用”

RSoft光子器件工具包括业界最广泛的模拟器和优化器&#xff0c;一款非常优秀的设计仿真软件&#xff0c;能够帮助用户轻松的设计光学元件、纳米级光学结构&#xff0c;同时也可以模拟无源或有源的光电子器等。RSoft具有高度精确的算法能快速建立虚拟样机&#xff0c;同时降低了…

FPGA 20个例程篇:15.VGA显示八种颜色的彩条

第六章 图像显示处理&#xff0c;经典再现 15.VGA显示八种颜色的彩条 图像和视频处理可以说是FPGA中又一个经典地应用&#xff0c;使用FPGA做图像处理最核心的优势就在于&#xff1a;FPGA能进行实时流水线运算&#xff0c;从而达到更高的实时性&#xff0c;围绕着图像处理又有…

【VUE】process.env,require,vite.config.js等问题的解决

一、简介 这个系列是想将自己做过的Cesium项目整理回顾&#xff0c;同时也希望能给看到的文章的朋友一点帮助。大部分内容规划都是简单的功能应用&#xff0c;后面可能会选我自己感兴趣的功能做分享。 本文主要介绍工程的技术选型&#xff0c;环境搭建和代码的简单实现。首先…

Spring Security(一)- SpringSecurity 框架简介

文章目录一、SpringSecurity 框架简介1. 概要2. Spring Security 与 Shiro 对比2.1 Spring Security2.2 SpringSecurity特点2.3 Shiro2.4 Shiro特点2.5 小结3. SpringSecurity项目模块和依赖二、SpringSecurity 入门案例1. 添加相关依赖2. 运行项目3. 权限管理中的相关概念&…

大字节数组和 MemoryStream 的替代方案

发表于2019 年 12 月 9 日 在 .NET 中,处理二进制数据时通常使用字节数组;例如,在方法之间传递文件的内容、编码/解码文本、从套接字读取数据等。这些数组可能会变得非常大(最大为兆字节),OutOfMemoryException如果运行时无法运行,最终可能会导致被抛出分配足够大的内存…

redis数据结构基本语法

Redis Study 学到技巧 快捷键 ctrl [ typora很好用&#xff0c;有个问题就是换行会自动跟上面的格式&#xff0c;按删除键也无效 ctrl [就会把前面的格式给稀释掉。 经验 有关typora上传博客园图片缩放的问题,办法就是在typora中粘贴图片以后发现缩放没有效果&#xf…

Windows中使用SMB共享文件夹

SMB共享文件夹 简单步骤:打开【控制面板】 打开【启动或关闭windows功能】 打开【SMB1.0/CIFS 文件共享支持】 重启电脑 到磁盘中选择需要共享的文件夹 选中文件夹【属性】-> 【共享】->【共享】->添加【Everyone】用户 -> 权限【读取/写入】->确定共享 打开【…

那么我们应该如何优化Youtube的视频呢?

除了ins&#xff0c;Facebook&#xff0c;Twitter这类日常发帖分享型的社交网站外&#xff0c;还有其他的视频类网站也可以用于跨境电商的营销推广。作为视频类的社媒网站&#xff0c;YouTube可以说是全球第一大视频类社媒营销网站&#xff0c;在拓展视频内容的同时&#xff0c…

第3章 Kafka架构深入

3.1 Kafka工作流程及文件存储机制 Kafka中消息是以topic进行分类的&#xff0c;生产者生产消息&#xff0c;消费者消费消息&#xff0c;都是面向topic的。 topic是逻辑上的概念&#xff0c;而partition是物理上的概念&#xff0c;每个partition对应于一个log文件&#xff0c;该…

java线程池

目录 一、浅谈对线程池的理解 二、线程池常用类和接口 三、线程池的核心参数 四、线程池的状态 五、线程池的执行流程 六、常见的线程池 FixedThreadPool&#xff1a;线程数固定的线程池 CachedThreadPool&#xff1a;可缓存线程池&#xff0c;线程数根据任务动态调整的…

肯德尔(Kendall)相关系数概述及计算例

目录 1. 何谓相关&#xff08;correlation&#xff09;? 2. 肯德尔相关 3. 肯德尔相关的假设 4. 计算公式及代码示例 4.1 Tau-a 4.2 Tau-b 1. 何谓相关&#xff08;correlation&#xff09;? 相关是指一种双变量分析&#xff08;bi-variate analysis&#xff…

不知道数字化转型有什么意义?实现数字化转型价值都有哪些路径

近些年来&#xff0c;随着人工智能、云计算、大数据、物联网、区块链等新一代前沿技术的普及应用&#xff0c;社会的方方面面都有了信息化、数字化的身影&#xff0c;并通过相关技术、理念、应用创造了从未体验过的数字化社会&#xff0c;对整个社会形式进行了一次深层次的转型…

JVM原理及优化_垃圾回收器

文章目录JVM原理及调优_垃圾回收器什么是垃圾收集器&#xff1f;垃圾回收器详解SerialParNewParallel ScavengeSerial OldParallnel oldCMSG1JVM原理及调优_垃圾回收器 什么是垃圾收集器&#xff1f; 垃圾收集器是垃圾回收算法&#xff08;引用计数法、标记清除法、标记整理法…

PLM是什么?为什么要上PLM?有什么好处?

PLM是什么&#xff1f;或许早在五年前还有这个疑问&#xff0c;但如今已成为行业竞争的必需品。 PLM即对产品从创建、使用到最终报废&#xff0c;是一种对全生命周期产品数据信息进行管理的理念&#xff1b;是一种应用于在单一地点的企业内部、分散在多个地点的企业内部&#…

SpringBoot JavaBean对象拷贝 orika

前言: 日常开发中&#xff0c;经常会遇到将一个对象bean值复制到另一个bean,一般通过set方法一个一个属性写上去&#xff0c;比较麻烦。当然也有spring、apache的属性拷贝工具,这里介绍一下orika orika 是什么? Orika 是一个 Java Bean 映射框架&#xff0c;它可以递归地将数…

Oracle 11g第一次启动SQL Developer所出现的问题

Oracle 11g第一次启动SQL Developer提示缺少快捷方式 1)问题复刻 当第一次启动SQL Developer的时候提示我 :“Windows 正在查找SQLDEVELOPER.BAT。如果想亲自查找文件,请单击"浏览” 。这个时候如果没有点击浏览,过一会他会自动跳到图二,此时就算点击了修复也无济于事…

zabbix服务器搭建

文章目录zabbix1. 环境准备2. zabbix服务器安装3. 监控本机4. 通过zabbix-agent监控远程机器5. zabbix用户与用户群组6. 监控项与应用集7. 为监控项创建图形8. 自定义监控项9. 为自定义监控项创建图形10zabbix zabbix官网 1. 环境准备 主机ipzabbix_server192.168.44.10agen…

什么是自动采矿卡车autonomous mining trucks

自动采矿卡车 (AMT) 是无人驾驶的矿山重型车辆&#xff0c;可以感知环境并在矿山运输路面上导航&#xff0c;无需任何人工干预。AMT 降低了设备与辅助设备或配备的手动车辆 (EMV) 接触的风险。 矿业在世界经济中发挥着重要作用。随着发达国家追求零伤亡&#xff0c;进入技术工人…