算法第二次作业

news/2025/11/2 2:55:37/文章来源:https://www.cnblogs.com/lox178/p/19184162

1.关于我的找第k小数的分治算法,我的代码的实现是基于分治思想的随机化 Quickselect 算法,用来在无序数组中找到第 k 小的元素(第 k 小按 1-based 计数)。我是将问题分解:通过一次“划分(partition)”操作把数组分成两部分:小于等于 pivot 的部分和大于 pivot 的部分。然后根据 pivot 的位置判断目标元素落在哪一侧:若 pivot 恰好是区间内第 k 小(即 pivot 的秩等于 k),返回 pivot。若目标在左半部分,对左侧子区间递归求第 k 小。若目标在右半部分,对右侧子区间递归求第 (k - leftCount) 小。每次递归只处理一侧子区间,因此总体只访问数组的一个子集,平均时间复杂度为线性 O(n)。
2.关于我这算法,平均时间复杂度为O(n),最坏时间复杂度为O(n^2)。
3.分治法的核心思想主要是把大问题递归地分解成若干个相同或相似的子问题,分别解决这些子问题,然后把子问题的解合并成原问题的解。而其关键步骤通常是:划分(divide)、解决(conquer)、合并(combine)。分治强调“局部处理、递归合成”,适合能够通过局部信息构造全局解的场景。常见的模式有几种,如二分分治、随机化分治、三路/多区间划分、分治与动态规划结合。分治法的优点也很明显,思想直观、构造性强,把复杂问题拆解成较小子问题,便于理解与实现。同时在时间/空间有优势,许多场景下能把复杂度降到最优(如归并排序的 O(n log n)、Quickselect 的平均 O(n))。当然,有利必有弊,分治法的最坏情形可能退化,就像Quickselect/Quicksort 在极端划分下会退化为 O(n^2)。而且递归开销、重复计算等问题还是需要通过其他手段来优化。总的来说,分治是一把非常强的通用“工具”,它能把复杂问题拆解、局部优化、再合并成整体。而其真正的艺术在于如何选择划分策略、如何高效合并、以及在实现上用工程手段(随机化、阈值切换、数据结构支持)来降低最坏情况或常数开销。掌握分治不仅能写出高效算法,还能培养把复杂问题拆解成可管理模块的思维方式。

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

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

相关文章

个人电脑上的知识管理利器:访答知识库深度体验

个人电脑上的知识管理利器:访答知识库深度体验 为什么选择本地私有知识库 在信息爆炸的时代,知识管理成为每个人的必修课。与云端知识库相比,访答知识库作为本地私有知识库,提供了更高的数据安全性和隐私保护。你的…

安卓手机搭建gitea

前期准备 准备好termux以及远程连接ssh.[提前搞定,不多赘述了。] 1.安装 termux。 termux-app_v0.119.0-beta.3+apt-android-7-github-debug_arm64-v8a.apk 2.ssh 每次重新打开都需要重启ssh以及配置端口。否则就会出…

总结2

该书系统勾勒了程序员从“小工”到专家的成长路径,强调“个人责任”与“实践导向”的双重驱动。书中建议通过“曳光弹开发”快速验证需求假设,避免陷入过度设计或脱离实际的陷阱;同时,借助“重构”实践保持代码的灵…

总结1

《程序员修炼之道:从小工到专家》以“注重实效的哲学”为核心,强调程序员应从单纯的技术执行者蜕变为具备全局视野的专家型开发者。书中系统阐述了“正交性”原则,即通过模块间解耦设计提升系统灵活性,避免冗余和耦…

总结3

《程序员修炼之道:从小工到专家》不仅聚焦技术精进,更深入探讨了团队协作与沟通的关键作用。书中指出,专家型开发者需具备“用非技术语言解释复杂方案”的能力,以促进跨部门理解与共识。例如,通过主动与产品团队沟…

电子丨PCB设计中的“3W原则”和“20H原则”

“3W原则”和“20H原则”是PCB布局中两个非常重要的经验法则,主要用于提高电路板的信号完整性和电磁兼容性。1. 3W原则 3W原则主要关注的是信号线之间的串扰问题。核心思想:为了最小化信号线之间的串扰,走线中心到中…

pnpm 踩坑

Hello World本文来自博客园,作者:南宫影,转载请注明原文链接:https://www.cnblogs.com/nangongying/p/19184133

从廊桥分配学习优先队列

题目地址:P7913 [CSP-S 2021] 廊桥分配 - 洛谷首先考虑最朴素的做法,即枚举廊桥对国内和国际的分配,此过程时间复杂度O(n),接着问题就变成了有 i 个廊桥,有m架飞机,分别要在[ai,bi]时间段内使用一个廊桥,问最…

电子丨导通占空比

在DC-DC转换器(如Buck、Boost等开关电源)中,导通占空比(Duty Cycle) 是一个核心概念,直接决定了输出电压与输入电压的关系。它的定义和工作原理如下:1. 基本定义 导通占空比(D) 是指在一个开关周期内,开关管…

[SWPUCTF 2022 新生赛]奇妙的MD5 WP

[SWPUCTF 2022 新生赛]奇妙的MD5 WP 一上来页面让我们写一个奇妙的字符串,可能会有点蒙,查看 F12 源码也找不到什么有用的信息,我们这时去抓包一下这个网址,会发现: hint:select * from admin where password=md5…

DELL笔记本加内存的流水账 - zhang

刚好朋友送了一条笔记本内存条,虽然我的DELL笔记本平时也不做什么大的动作,总体来说内存是够用的,但有升级的机会就尝试去升级了。 在加内存条的时候遇到了几个问题,刚好是我之前不了解的电脑知识,也没找到相关的…

静电服对人体是安全的

静电服对人体是安全的🧑‍🏭 一、静电服的工作场景 静电服主要用于 防静电敏感环境,常见在:行业使用场景电子制造 SMT贴片、组装、测试、维修半导体 芯片封装、晶圆厂洁净室医疗设备 无尘净化间操作化工、油气 避…

MySQL元数据库information schema

一、概述 information_schema提供了对数据库元数据、统计信息以及有关MySQLServer信息的访问(例如:数据库名或表名、字段的数据类型和访问权限等)。该库中保存的信息也可以称为MySQL的数据字典或系统目录。 在每个M…

CSP-S 2025 差点(貌似真的)坠机记

突然发现自己成为老年选手。 省流:\([0,100]+[0,100]+[0,50]+[0,5]=[0,255]\)。 2025.9.19 明天怎么初赛了? 2025.9.20 今天怎么初赛了? 去年还做了很长时间的模拟题,今年是一套完整的题目都没做,不管了 qwq。从学…

一切的终点

这篇文章本来应该是一个月后写的,唉。 当 5 分钟切掉 T1,代码飞速跑过 T2 大样例时,我有那么一瞬间觉得自己能赢。 死磕 T3 2h+,费劲毕生所学无果,尽管最后时刻调出暴力,也无法改变这一切的结果。 梦想的舞台就在眼…

题解:AT_abc304_f [ABC304F] Shift Table

思路 首先,很容易想到枚举合法的循环节长度,然后遍历整个字符串,对必须要干活的天数进行标记,最后记循环节长度为 \(l\),标记天数为 \(cnt\),则这个循环节长度就有 \(2^{l-cnt}\) 个合法方案。 但是这样计算会导…

题解:CF1936C Pokmon Arena

考虑如何建图,首先对于 \(n\) 个人的 \(m\) 个属性我们都建一个点,表示目前第 \(j\) 个属性达到了 \(a_{i,j}\) 的代价。为了计算每个人的出场费用,我们再新建 \(n\) 个点(记其编号为 \(b_i\)),分别表示现在场上…

题解:CF983E NN country

首先思考线路只有从祖先到子孙的链的情况,对于询问的两个点 \(x\) 和 \(y\),我们肯定要先从 \(x\) 跳到它们的 LCA,再从 LCA 跳到 \(y\)。由于从 LCA 到 \(y\) 的过程和从 \(y\) 到 LCA 的过程是等价的,所以我们可…

CSP-S 2023 游记

1. 你知道吗?红绿灯倒计时的第一位的取值范围不是 0~9,而是 0~F。 半个十六进制的红绿灯。 半个有 OI 的生活。 第一次看到它,是在考完 csps2023 回家的路上,我家长确信那只是二极管失灵,但我亲眼看到它从 E,到…