4.典型的分治算法

news/2025/11/23 22:52:08/文章来源:https://www.cnblogs.com/wy0518/p/19261772

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.小结:

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

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

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

相关文章

Serilog 日志库简单实践(三)集中式日志与分析平台 Sinks(.net8)

本文主要介绍了集中式日志与分析平台 Sinks,并通过示例项目简单演示了它们的用法,供参考。〇、前言 前文已经介绍过什么是 Serilog,以及其核心特点,详见:https://www.cnblogs.com/hnzhengfy/p/19167414/Serilog_b…

数论部分

目录质数 约数 欧拉函数 快速幂 扩展欧几里得算法 组合数 博弈论质数 分解质因数 一个数最小的因子一定是质数。for (int i = 2; i <= x / i; i ++ )if (x % i == 0){int s = 0;while (x % i == 0) x /= i, s ++ ;c…

Java的ConcurrentModificationException异常介绍和解决方案

关于ConcurrentModificationException 异常介绍 在一个线程遍历集合的时候(如ArrayList,HashMap),结构被修改(如remove, add),就会抛出这个异常。 是一个fail fast机制,为了在并发修改的时候发现问题,而不是返…

深入理解 Dart 中的 const 与 final:编译时常量与运行时常量

在 Dart 的开发中,我们频繁地使用 const 和 final 来声明变量。表面上看,它们都用于创建“不可变”的变量,但背后的机制却有着本质的区别。这种区别直接影响着程序的性能和内存分配。本文将深入探讨这两者的不同,并…

python: 缩放图片

一,代码 import base64 import cv2 import numpy as np from PIL import Image import io from PIL import Image, ImageFilter from io import BytesIOdata_url = "data:image/png;base64,iVBORw0KGgoAAAANSUhE…

java和python做出什么

Java 和 Python 是两种非常流行的编程语言,它们在不同的应用场景中发挥着重要作用。下面我将从 语言特性、应用场景 和 代码示例 三个方面来详细说明 Java 和 Python 的作用。一、Java 和 Python 的语言特性 1. Java类…

java和linux

Java 和 Linux 是两个不同的技术栈,但它们在系统开发、自动化脚本、服务器管理等领域有密切的联系。以下是关于 Java 和 Linux 的一些关键点和常见用法:一、Java 与 Linux 的关系Java 是一种编程语言,用于开发桌面应…

湖南工程学院 学科实践与创新协会电气部 幕后揭示

第一次为其他学校出的题目~献给挚爱的你的不思议之国幕后揭示 题面地址:https://www.cnblogs.com/Reisentyan/p/19261758 现在时间:\([2025/11/20\) \(23:47]\) 将揭示—— 幕后真相 本场比赛难度预计:Easy - A, …

KEYDIY PAK06-ZB Phone As Key: Replace Your Car Key with Your Smartphone for European/American Cars

The Pain of Traditional Keys: Why Your Garage and Pocket Deserve a Upgrade In the age of smartphones and smart homes, traditional car keys feel increasingly outdated. Whether you’ve mislaid your physi…

湖南工程学院 学科实践与创新协会电气部 新生选拔赛

湖南工程学院新生选拔赛 赛前提醒 在完成本题目时,除抄袭外允许采用任何方式。 最终人员录取将依据所提交代码的质量进行评定,请各位认真对待。 如发现任何抄袭行为,将立即取消参与资格。 题目要求 提交要求 …… 请…

It Calculus

Brownian Motion Wiener Process \(\newcommand{\E}{\mathbb{E}}\newcommand{\Var}{\text{Var}}\)我们熟悉作为离散随机过程的“随机游走”。这指的是:给定一列自然数下标的i.i.d.随机变量\(X_t\),其中\(X_t\)有\(1/…

20232412 2024-2025-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 本实践目标是掌握metasploit的用法。 下载官方靶机Metasploitable2,完成下面实验内容。 (1)前期渗透 (2)Vsftpd源码包后门漏洞(21端口) (3)SambaMS-RPC Shell命令注入漏洞(端口139) (4)Java R…

20232309 2025-2026-1 《网络与系统攻防技术》实验六实验报告

1.实验内容 1.1实验任务前期渗透主机发现(可用Aux中的arp_sweep,search一下就可以use) 端口扫描:可以直接用nmap,也可以用Aux中的portscan/tcp等。 选做:也可以扫系统版本、漏洞等。Vsftpd源码包后门漏洞(21端口…

2025 ICPC 西安区域赛 VP

啊吧啊吧队友是xd和zcr(以后也是),玩的是辅助位,被两位✌带飞了前言 上大学后的第三次线下一起打。 xd之前说肯定会越打越好。 还真是。 记 微积分习题课看完自己的卷子就溜了,然后和zcr一起刷创高,在学校里随机…

K8s学习笔记(二十二) 网络组件 Flannel与Calico - 详解

K8s学习笔记(二十二) 网络组件 Flannel与Calico - 详解2025-11-23 22:30 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

完整教程:人脸识别4-Windows下基于MSVC编译SeetaFace6

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

CF1483D-Useful Edges

CF1483D-Useful Edges 题目大意 有一个 \(n\) 个结点的无向加权图,以及 \(q\) 个三元组,\((u,v,l)\) ,其中 \(u\) , \(v\) 是顶点,\(l\) 是正整数。 如果存在至少一个三元组和一个具有以下特性的路径(不一定简单…

Paddle-CLS图像分类_环境安装

Paddle-CLS图像分类_环境安装 paddle-cls 图像分类的组件,依赖于`paddle`环境,因此需要先安装`paddle`的环境,而`paddle-cls`对paddle的版本依赖度较高,容易出错,因此建议第一次安装遵循本安装文档,后续再进行其…

2025年11月短视频运营公司最新TOP5推荐:业绩增长与效率筛选标准

随着短视频成为企业数字化营销的核心阵地,市场对专业运营服务商的需求持续攀升。本榜单基于技术创新力、行业适配性、服务效能三大核心维度,结合企业实战案例与客户续约率等关键指标,深度解析2025年云南及西南地区五…

实用指南:【10】MFC入门到精通——MFC 创建向导对话框、属性页类、属性表类、代码

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