软件设计师教程(第5版)第8章 算法设计与分析(更新中)

news2024/9/25 3:26:36

8.1 算法设计与分析的基本概念P416

8.1.1 算法P416

【算法】是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。P416

一个算法还具有下列5个重要特性:【有穷】性、【确定】性、【可行】性、【输入】、【输出】。P416

8.1.2 算法设计P416

算法设计是一件非常困难的工作,通常设计一个“好”的算法应考虑多个目标,包括【正确】性、【可读】性、【健壮】性和【高效】性等。P416

8.1.3 算法分析P417

从基本概念上看,【算法分析】是指对一个算法所需要的资源进行估算,这些资源包括内存、通信带宽、计算机硬件和时间等,所需要的资源越多,该算法的复杂度就越高。P417

8.1.4 算法的表示P417

常用的表示算法的方法有【自然语言】、【流程图】、【程序设计语言】和【伪代码】等。P417

8.2 算法分析基础P417

8.2.1 时间复杂度P417

算法的时间复杂度分析分为3种情况:【最佳】情况、【最坏】情况、【平均】情况。P418

8.2.2 渐进符号P418

O记号。
Ω记号。
在这里插入图片描述记号。

8.2.3 递归式P419

从算法的结构上看,算法可以分为【非递归】形式和【递归】形式。P419

递归算法的时间复杂度分析方法:【展开】法、【代换】法、【递归树】法、【主方法】。P420

8.3 分治法P422

8.3.1 递归的概念P422

【递归】是指子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的常用方法。P422

递归有两个基本要素:【边界条件】,即确定递归到何时终止,也称为【递归出口】;【递归模式】,即大问题是如何分解为小问题的,也称为【递归体】。P422

8.3.2 分治法的基本思想P423

分治算法在每一层递归上都有3个步骤:【分解】、【求解】、【合并】。P423

8.3.3 分治法的典型实例P423

归并排序。
最大子段和。

8.4 动态规划法P427

8.4.1 动态规划法的基本思想P427

8.4.2 动态规划法的典型实例P428

8.5 贪心法P433

8.5.1 贪心法的基本思想P433

【贪心】算法并不总能得到最优解。P434

8.5.2 贪心法的典型实例P434

8.6 回溯法P437

8.6.1 回溯法的算法框架P437

1.问题的解空间

2.回溯法的基本思想

3.回溯法的算法框架

4.回溯法的限界函数

8.6.2 回溯法的典型实例P440

8.7 分支限界法P445

8.8 概率算法P446

概率算法大致分为4类:【数值概率】算法、【蒙特卡罗】(Monte Carlo)算法、【拉斯维加斯】(Las Vegas)算法和【舍伍德】(Sherwood)算法。P447

8.9 近似算法P448

8.10 数据挖掘算法P448

1.数据挖掘概述

数据挖掘的核心是算法,其主要功能包括【分类】、【回归】、【关联规则】和【聚类】等。P448

2.分类

分类是一种有监督的学习过程,根据历史数据预测未来数据的模型。P448

3.频繁模式和关联规则挖掘

4.聚类

5.数据挖掘的应用

8.11 智能优化算法P450

1.智能优化算法概述

2.人工神经网络

【人工神经网络】(【ANN】)是一个以有向图为拓扑结构的动态系统,它通过对连续或断续的输入作状态响应而进行信息处理。P451

3.遗传算法

【遗传】算法是源于模拟达尔文的“优胜劣汰、适者生存”的进化论和孟德尔.摩根的遗传变异理论,在迭代过程中保持已有的结构,同时寻找更好的结构。P451

【遗传】算法是建立在自然选择和群体遗传学基础上,通过自然选择、杂交和变异实现搜索的方法。P451

4.模拟退火算法

物理退火过程包括3个阶段:【加温】阶段、【等温】阶段、【冷却】阶段。P452

5.禁忌搜索算法

【禁忌搜索】算法(【TS】)是模拟人类智力过程的一种全局搜索算法,是对局部邻域搜索的一种扩展。P452

6.蚁群算法

7.粒子群优化算法

【粒子群】算法的基本思想:鸟群觅食飞行时,在飞行过程中经常会突然改变方向、散开、聚集,其行为不可预测,但其整体总保持一致性,个体与个体间也保持着最适宜的距离。P454

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

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

相关文章

Games101学习 - 线性代数综述

1. 叉积矩阵形式 叉乘矩阵形式通常在物理模拟中有运用,处理四元数旋转也类似这样的形式。 // 定义两个向量 A 和 B FVector A(1.0f, 2.0f, 3.0f); FVector B(4.0f, 5.0f, 6.0f);// 计算叉积 FVector CrossProduct FVector::CrossProduct(A, B);if (GEngine) {GEn…

CVPR2024满分论文:基于可变形三维高斯的高质量单目动态重建方法

一、摘要 隐式神经表征为动态场景的重建和渲染开辟了新的途径。然而,尖端的动态神经渲染方法严重依赖这些隐式表征,它们常常难以捕捉场景中物体的复杂细节。此外,隐式方法通常难以实现动态场景的实时渲染,限制了它们在多种任务中的…

Excel公式与图表自动化:在Python中操作Excel公式并自动化生成图表

目录 一、Python操作Excel公式 1.1 读取Excel文件 1.2 识别和处理公式 1.3 批量处理公式 二、自动化生成图表 2.1 使用pandas和matplotlib生成图表 2.2 使用xlwings在Excel中直接生成图表 2.3 自定义图表样式 2.4 自动化生成复杂图表 三、总结 在数据分析和自动化办公…

VMware Workstation Pro for Personal Use (For Windows) 17.0.0

VMware Workstation Pro for Personal Use (For Windows) 17.0.0 弄了半天终于找到下载地址了 现在VMware被博通(broadcom)收购且宣布了17.5版本的VMware Workstation Pro对个人用户免费许可使用。由于现在官网的下载方式有改变,故贴出来一…

【数学分析笔记】第2章第4节收敛准则(4)

2.数列极限 2.4 收敛准则 上节课举了一个例子 a N 1 1 2 p 1 3 p . . . 1 n p a_{N}1\frac{1}{2^{p}}\frac{1}{3^{p}}...\frac{1}{n^{p}} aN​12p1​3p1​...np1​ p > 1 p>1 p>1&#xff0c; { a n } \{a_{n}\} {an​}收敛 0 < p ≤ 1 0<p\le 1 0<p≤…

OpenStack——keystone认证服务

1、作用 认证授权 服务目录 2、组件 keystone-server keystone-DB 3、架构 ①组成 用户认证流程&#xff1a; 1.Horizon为用户提供界面; 2.用户输入用户名密码&#xff0c;有Horizon转发至Keystone做认证授权 ; 3.如果认证鉴权成功&#xff0c;会给用户发放一个临时的unscope…

AIGC:Flux.1 NF4 使用 diffusers 推理

背景介绍 Flux 参数量很大 (包括 ext encoder2, autoencoder, 以及 diffusion model) , 使用Diffusers推理,显存占用 30GB。 有大佬做了 NF4 版本,效果依旧能打。所以本文使用 diffusers 推理 NF4版本的 Flux.1 本文重点 1:flux.1-dev-nf4 国内镜像加速下载 2:依赖环境…

error: undefined reference to `__imp__ZN11QSerialPortC1EP7QObject‘

问题 在qt console程序里使用QSerialPot, 在.pro文件里添加了serialport&#xff0c;在main.cpp里也包含了QtSerialPort/QSerialPort&#xff0c;但是编译报错如下&#xff1a; 原因 serialport模块加错了位置&#xff0c;应该添加到QT后面&#xff0c;而实际添加到CONFIG后…

mybatis-plus中Swagger 模式和Kotlin 模式是什么?

在 MyBatis-Plus 中&#xff0c;Swagger 模式和 Kotlin 模式是为了支持特定技术栈和开发需求的两种配置选项。它们分别针对 API 文档生成和 Kotlin 语言提供了更好的支持和集成。 Swagger 模式 Swagger 模式主要用于生成 API 文档。在 MyBatis-Plus 中启用 Swagger 模式后&am…

视频合并怎么弄?高效方法立即学

记得那次家庭聚会&#xff0c;我翻看着那些珍贵的录像带&#xff0c;突然萌生了一个想法&#xff1a;要是能把这些零散的记忆片段合并成一部完整的影片&#xff0c;那该多好啊&#xff01; 于是我开始了视频合并剪辑的探索之旅。从一开始的手足无措&#xff0c;到逐渐熟悉每一…

linux,ubuntu,使用ollama本地部署大模型llama3,模型通用,简易快速安装

文章目录 前言安装ollama启动ollama运行llama3模型查看ollama列表删除模型通过代码进行调用REST API 前言 在拥有了一条4090显卡后&#xff0c;那冗余的性能让你不得不去想着办法整花活&#xff0c;于是就想着部署个llama3&#xff0c;于是发现了ollama这个新大陆&#xff0c;…

【硬件操作入门】2--GPIO与门电路、二极管三极管、LED电路与操作

【硬件操作入门】2–GPIO与门电路&#xff08;二极管&三极管&#xff09;、LED电路与操作 文章目录 【硬件操作入门】2--GPIO与门电路&#xff08;二极管&三极管&#xff09;、LED电路与操作一、GPIO与门电路1.1、GPIO的应用1.2、GPIO引脚操作1.2.1 设置引脚为GPIO功能…

今日算法:蓝桥杯基础题之“切面条”

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注&#xff01;个人知乎 从今天开始&#xff0c;一起了解算法&#xff0c;每日一题&#xff0c;从 JavScript 的技术角度进行解答&#xff0c;如果你对算法也感兴趣&#xff0c;请多多关注哦。 问题描述 一…

网络维护~2003服务环境

一、2003服务环境 背景&#xff1a;学习测试需要在虚拟机进行实验&#xff0c;主机kali验证开源十大漏洞&#xff0c;部分需要2003服务环境。 博客声明:搭建网络是为了学习用途&#xff0c;请遵守《网络安全法》. 二、安装iis服务软件 &#xff08;一&#xff09;查看Internet…

重生奇迹MU 单挑团战全能的职业

若你正在寻找一款能够在重生奇迹MU单挑或团战中表现不怂的职业&#xff0c;那么恭喜你&#xff0c;你来到了正确的地方。在本文中&#xff0c;我们将为你介绍几个在重生奇迹MU中表现出色的职业&#xff0c;并分享一些有用的技巧和策略&#xff0c;帮助你在游戏中获得胜利。不用…

【Linux】进程池实例

这篇博客讲解了进程池的创建过程&#xff0c;并在最后附上了完整代码。 现在有一个父进程&#xff0c;然后提前创建出一批子进程&#xff0c;未来如果父进程master有一些任务要交给子进程去运行&#xff0c;而不用像shell&#xff0c;需要执行命令才回去创建进程&#xff0c;创…

气膜建筑与装配式建筑的对比分析—轻空间

在现代建筑中&#xff0c;气膜建筑和装配式建筑都作为新型建筑形式受到关注。然而&#xff0c;在很多应用场景中&#xff0c;气膜建筑展现出了比装配式建筑更为明显的优势。以下将着重对比气膜建筑相较于装配式建筑的独特优势。 气膜建筑的突出优势 1. 更快的施工速度 气膜建筑…

信号量笔记

1、信号量简介 信号量是一种实现任务间通信的机制&#xff0c;可以实现任务之间同步或临界资源的互斥访问&#xff0c;常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中&#xff0c;各任务之间需要同步或互斥实现临界资源的访问&#xff0c;信号量功能可以为用户提…

智能新时代:探索【人工智能】、【机器学习】与【深度学习】的前沿技术与应用

目录 1. 引言 1.1 人工智能的概念与历史 1.2 机器学习与深度学习的演进 1.3 计算机视觉的崛起与应用场景 2. 人工智能基础 2.1 什么是人工智能&#xff1f; 2.2 人工智能的分类 2.3 人工智能的现实应用 3. 机器学习 3.1 机器学习的定义与基本原理 3.2 机器学习的主要…

【可能是全网最丝滑的LangChain教程】二十二、LangChain进阶之Callbacks(完结篇)

这是LangChain进阶教程的最后一篇&#xff0c;Let’s get it!!! 01 Callback介绍 在LangChain中&#xff0c;Callback 是一种非常重要的机制&#xff0c;它允许用户监听和处理在执行链式任务 (Chain) 过程中的各种事件。这包括但不限于开始执行、结束执行、异常处理等。Callba…