尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

4.典型的分治算法

4.典型的分治算法
📅 发布时间:2026/6/19 15:46:41

4.1选最大与最小

1.选择问题

概念

image

问题

选最大问题:顺序比较
image

伪码:
image

同时选最大最小问题:
通常算法:先选出最大数,再从剩下的n-1个数里选最小数
image

算法

分组算法:两两数分成一组,每组进行比较,在所有大的数+轮空数里选出最大数,在所有小的数+轮空数里选出最小数
image

伪码:先分组再比较再选数
image

最坏情况时间复杂度:
image

分治算法:递归
image

最坏情况时间复杂度:
image

2.小结:

  • 选最大:顺序比较,比较次数 n - 1
  • 选最大最小:
    • 1.选最大+选最小:比较次数 2n - 3
    • 2.分组:比较次数 ⌈3n/2⌉ - 2
    • 3.分治:n = 2ᵏ 比较次数 3n/2 - 2


4.2选第二大

1.选第二大问题+算法

蛮力算法

顺序比较:
image

锦标赛算法:用空间换时间

提高效率的途径:
image

锦标赛算法:
image

伪码:
image

实例:
image

时间复杂度分析

image

image

image

2.小结:

  • 常规算法蛮力解决:调用2次找最大:2n - 3
  • 锦标赛算法:n + ⌈logn⌉ - 2
  • 思路:用空间换时间


4.3一般性选择问题:选第k小的数

1.一般性选择问题

问题

image

算法

简单的算法:
image

分治算法:
image

m*的选择与划分过程:
image

实例:n = 15,k = 6
image

归约为子问题:
image

伪码:
image

2.小结:

  • 选第k小的算法:
    • 分治策略
    • 确定m*
    • 用m*划分分数组归约为子问题
    • 递归实现


4.4选择问题的算法分析

1.算法分析

详情

用m*划分:
image

子问题规模估计:
image

时间复杂度递推方程:
image

递归树:W(n) = W(n/5) + W(7n/10) + cn
image

2.递归调用:
1.求m*的工作量与|M| = n/t 相关,t为每组元素数,t大,|M|小
2.归约后子问题大小与分组元素数t有关,t大,子问题规模大

3.三分组时的子问题规模:假设t=3,3个一组

时间复杂度

image

算法的时间复杂度:
image

4.小结:

  • 选第k小算法的时间分析:
    • 递推方程
    • 分组时每组元素数的多少对时间复杂度的影响


4.5卷积及应用

1.卷积的定义

向量定义&矩阵解释

定义:
image

矩阵理解:
image

实例:
image

2.卷积与多项式乘法的关系

详情

image

3.卷积的应用:信号平滑处理

详情

image

实例:两边有误差
image
image

4.小结:

  • 卷积的定义
  • 卷积与多项式乘法的关系
  • 卷积的应用--信号平滑处理


4.6卷积计算

1.蛮力算法

详情

image

卷积a*b计算等价于多项式相乘
蛮力算法的时间:O(n²)

2.多项式 高斯滤波

详情

计算2n-1次多项式C(x):
image

高斯滤波的权值函数:
image

2n个数的选择:1的2n次根:
image

实例:
image

快速傅里叶变换FFT
image
image

算法

image

3.小结:

  • 蛮力算法O(n²)
  • 快速傅里叶变换FFT算法:
    • 确定x的取值:1的2n次根
    • 关键步骤:多项式对x求值


4.7多项式求值算法

1.蛮力算法

详情

image

2.改进的求值算法

详情

image

偶系数与奇系数多项式
image
image

分治求值算法设计
image
image

3.FFT算法

详情

伪码:
image

时间复杂度:
image

4.小结:

  • 多项式求值算法:
    • 蛮力算法:O(n³)
    • 改进的求值算法:O(n²)
    • FFT算法:O(nlogn)


4.8平面点集的凸包

1.平面点集的凸包

问题

image

分治算法

image
image

伪码:
image

算法分析--时间复杂度
image

2.小结:

  • 平面点集的凸包是分治算法的一种应用

相关新闻

  • 数论部分
  • java和python做出什么
  • 2025 ICPC 西安区域赛 VP

最新新闻

  • 武汉买猫买狗去哪看?梦宠山庄实地体验分享 - 园友3800037
  • 从零到一:Jetlinks物联网平台服务器部署实战与避坑指南
  • (转)一次ANSYS EM 2023R1 “Request name electronics_desktop does not exist in the licensing pool.“的离谱解决记录
  • 面试被问“你的缺点是什么”,90%的应届生都答错了!(附满分话术)
  • Spring Cloud Alibaba 最佳实践:基于 Spring Boot 4.0 的完整微服务示例项目
  • 三步掌握AI斗地主:如何用DouZero智能助手提升你的游戏胜率

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号