博客园第二次作业

news/2025/10/30 16:45:51/文章来源:https://www.cnblogs.com/manbout/p/19177527

关于分治算法寻找第k小的数(快速选择算法):

  1. 基本情况:如果数组只有一个元素,直接返回该元素。
  2. 选择枢轴:从数组中随机选择一个元素作为枢轴。
  3. 分区操作:将数组分为三部分:小于枢轴的元素、等于枢轴的元素、大于枢轴的元素,统计每部分的元素个数
  4. 递归决策:
    如果k小于等于"小于枢轴"部分的元素个数,则在左半部分递归查找第k小的数,如果k大于"小于枢轴"部分的元素个数但小于等于"小于等于枢轴"的总个数,则枢轴就是第k小的数,否则,在右半部分递归查找第(k - 左部分和中部分元素个数)小的数。
    用伪代码描述为
    function QuickSelect(arr, left, right, k):
    if left == right:
    return arr[left]
    // 随机选择枢轴
    pivotIndex = randomPartition(arr, left, right)
    // 计算枢轴在分区后的位置
    pivotRank = pivotIndex - left + 1
    if k == pivotRank:
    return arr[pivotIndex]
    else if k < pivotRank:
    return QuickSelect(arr, left, pivotIndex - 1, k)
    else:
    return QuickSelect(arr, pivotIndex + 1, right, k - pivotRank)
    function randomPartition(arr, left, right):
    // 随机选择枢轴并放到末尾
    randomIndex = random(left, right)
    swap(arr[randomIndex], arr[right])
    // 标准分区过程
    pivot = arr[right]
    i = left
    for j from left to right-1:
    if arr[j] <= pivot:
    swap(arr[i], arr[j])
    i = i + 1
    swap(arr[i], arr[right])
    return i
    对分治算法寻找第k小的数的时间复杂度分析:
    最好情况时间复杂度:O(n):每次分区都能将数组大致等分,递归深度为O(log n),每层处理的数据量总和为O(n),总时间复杂度:O(n)。
    最坏情况时间复杂度:O(n²):每次分区都极不平衡(如每次选择最大或最小元素作为枢轴),递归深度为O(n),每层处理O(n)个元素,总时间复杂度:O(n²)
    平均情况时间复杂度:O(n):通过随机选择枢轴,可以避免最坏情况。
    数学期望证明平均情况下时间复杂度为O(n)。
    对分治法的体会和思考:
    分治法将复杂问题分解为若干个相同或相似的子问题,递归解决子问题后合并结果。
    分治法的优势:
  5. 问题简化:将大规模问题分解为小规模问题,降低解决难度。
  6. 并行潜力:子问题通常相互独立,适合并行计算。
  7. 算法清晰:递归结构使算法逻辑清晰易懂。
  8. 效率提升:通过合理分解,可以显著降低时间复杂度。
    分治法的关键要素:
  9. 分解策略:如何将原问题划分为子问题是分治法成功的关键。
  10. 基本情况:确定最小子问题的解决方法是递归的终止条件。
  11. 合并策略:子问题解的合并方式直接影响算法效率。
    在实际应用中需要考虑:
  12. 递归开销:递归调用会带来额外的栈空间和时间开销。
  13. 问题适用性:不是所有问题都适合分治法,需要满足最优子结构性质。
  14. 平衡划分:尽量保持子问题规模均衡,避免极端不平衡的情况。
    个人体会
    通过本章学习,我深刻认识到分治法不仅是一种算法设计技术,更是一种解决问题的思维方式。它教会我们面对复杂问题时,不要试图一次性解决所有问题,而是应该寻找合适的分解方式,将大问题转化为小问题,逐步攻克。在实际编程中,分治法往往能带来简洁而高效的解决方案。但同时也需要注意递归深度和栈空间的使用,避免出现栈溢出等问题。随机化技术的引入(如随机选择枢轴)是避免最坏情况的有效策略,这体现了算法设计中概率思维的智慧。分治法与其他算法设计技术的结合使用,往往能产生更强大的问题解决能力,这也是我今后需要进一步探索的方向。

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

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

相关文章

2025年口碑好的防水三防灯用户好评厂家排行

2025年口碑好的防水三防灯用户好评厂家排行 在工业照明领域,防水三防灯因其卓越的防尘、防水、防腐性能,成为化工、矿山、户外场馆等严苛环境的首选照明设备。随着LED技术的成熟,市场对高品质三防灯的需求持续增长…

深入解析:2025 最新 Docker 镜像源加速列表与使用指南(10月更新)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

revit api选择selection class

revit api选择selection class// 在Revit二次开发中,Selection 类是用于处理Revit用户界面中元素选择的核心类。它允许你获取当前用户选择的元素,或者提示用户选择新的元素(包括单个元素、多个元素、点、边、面、矩…

IT岗位求职记录系统 - 呓语

使用Trae开发一个IT岗位求职记录系统,记录适合自己的IT岗位,主要目标是训练学生使用数据库的增删改查。功能,要求包括岗位的添加(字段要包括:企业名称、岗位名称、薪资、具体要求等)、岗位列表(筛选查询等功能)…

单独学智能体,是永远无法变现的

——只有场景化与商业化落地,才是真正的智能体出路一、现象:智能体火了,但你可能仍觉得“没用”最近你可能有这样的感觉: 打开社交媒体,不管是知乎、抖音、头条,几乎每天都有人在讲“智能体”“AI Agent”。 它们…

2025年可靠的公园音乐喷泉行业内知名厂家排行榜

2025年可靠的公园音乐喷泉行业内知名厂家排行榜行业概述音乐喷泉作为现代城市景观的重要组成部分,已从单纯的观赏性设施发展为融合声、光、电、水等多种元素的综合性艺术表演系统。随着技术进步和市场需求增长,音乐喷…

对数log讲解

1. 什么是对数? 对数是指数运算的逆运算。如果 \(a^b = c\)(其中 \(a > 0\) 且 \(a ≠ 1\)),那么 \(\log_a c = b\) 基本定义\(\log_a x = y\) 意味着 \(a^y = x\) 例如:\(\log_2 8 = 3\),因为 \(2^3 = 8\)2.…

2025年质量好的半自动真空贴体机最新TOP品牌厂家排行

2025年质量好的半自动真空贴体机最新TOP品牌厂家排行随着包装行业的快速发展,半自动真空贴体机已成为食品、医疗、工业等领域不可或缺的设备。2025年,市场上涌现出众多优秀的半自动真空贴体机品牌厂家,它们在技术创…

2025 年小型高压氧舱,单人高压氧舱,民用高压氧舱,进口高压氧舱厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读!

引言 随着小型、单人、民用及进口高压氧舱在家庭保健、社区医疗等场景的普及,用户对产品品质、安全性及售后服务的要求愈发严苛。为精准筛选优质厂家,本次测评联合医疗器械行业协会、国家医用氧舱质量监督检验中心等…

基于小波变换的图像特征提取与畸变校正实现

一、技术实现 1. 小波多尺度特征提取 % 使用db4小波进行三级分解 [cA,cH,cV,cD] = wavedec2(I,3,db4);% 提取各尺度特征 level1 = appcoef2(cA,1); % 低频特征 level2 = detcoef2(all,cH,1); % 水平细节 level3 …

完整教程:3.0 labview使用SQLServer

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年包装机源头厂家最新推荐排行榜:覆盖多品类设备,精选 实力企业助企业高效采购给袋包装机/宠物食品包装机/宠物饲料包装机/预制袋包装机/水平包装机公司推荐

引言 当前包装行业自动化、智能化升级加速,市场上包装机厂家数量繁杂,产品质量、功能适配性差异显著,企业采购时常面临设备稳定性不足、售后服务滞后、定制化方案缺失等难题,尤其不同行业对设备卫生标准、精度、耐…

2025年5轴CNC加工源头厂家爱权威推荐榜单:插针/电极 /航空插头源头厂家精选

在高端制造业快速发展的背景下,5轴CNC加工技术作为精密制造的核心,广泛应用于航空航天、医疗器械、新能源汽车等关键领域。据行业调研数据显示,2024年全球5轴CNC加工服务市场规模已达181.8亿元,预计到2031年将增长…

playphrase

PlayPhrase,是一个基于短句的视频片段检索器。只要把想要查询语境的英文短句输入进去,就能得到数个台词包含这个短句的欧美原声影片片段。

.net开源acadsharp库读取dwg读取特定名称的块

.net开源acadsharp库读取dwg读取特定名称的块using System; using System.IO; using ACadSharp; using ACadSharp.IO; using ACadSharp.Entities; using ACadSharp.Tables; // BlockRecord 在这个命名空间下public cla…

2025年知名的液压缸厂家最新TOP实力排行

2025年知名的液压缸厂家最新TOP实力排行在工业自动化与机械制造领域,液压缸作为核心动力元件,其性能与质量直接影响整个系统的运行效率与稳定性。随着中国制造业的持续升级,液压缸行业也迎来了新一轮的技术革新与市…

Metasploit基础使用教程

Metasploit基础使用教程 msfconsole 是 Metasploit Framework 的主控制台程序,它是用户与 Metasploit 交互最常用的方式。 功能特点:提供统一界面来加载 exploit、payload、auxiliary 模块 支持自动补全、历史记录、…

2025年绞吸式抽沙船厂家权威推荐榜单:绞吸式清淤船/绞吸挖泥船 /绞吸抽沙船源头厂家精选

在河道疏浚、港口建设和矿产开采领域,高效可靠的绞吸式抽沙船正成为提升作业效率的核心装备。 根据全球疏浚设备市场分析报告显示,绞吸式抽沙船在全球疏浚船舶中占比达到34%,年销售额增长率维持在5.8% 的水平。中国…

2025年评价高的暗影缓冲铰链厂家推荐及选购参考榜

2025年评价高的暗影缓冲铰链厂家推荐及选购参考榜行业概述暗影缓冲铰链作为现代家居五金的核心部件,其品质直接影响家具的使用体验和寿命。2025年,随着智能家居和高端定制家具市场的持续增长,对高品质铰链的需求也日…

Java服务启动报session相关Redis错误 - Commissar

Java服务启动报Redis命令参数有问题,错误如下:是由于项目使用spring-session-data-redis依赖导致启动时,会进行相关config命令操作。应对修改方案: 1、修改配置文件:spring: session:redis:configure-action: no…