几种经典算法

news/2024/12/29 21:31:35/

1.分治法

分治法也叫做分而治之法。核心思想是将一个难以直接解决的大问题依照相同的概念分割成两个或者多个相同的小问题,以便各个击破。

如图所示:

image-20230530161427364

2.递归法

递归法和分而治之法像一对孪生兄弟,都是将一个复杂的算法问题进行分解,使其规模变小,然后使子问题容易求解。

一个函数或子程序是由自身所定义或调用的,就称为递归。它有两种定义,包括一个可以反复执行的递归过程和一个跳出只从过程的出口。

注:尾递归是指函数或子程序的最后一句为递归调用,,因为每次调用后再回到前一次掉哦哦用的第一条语句,所以不需要再 进行任何运算。

再系统种具体实现递归时要用到堆栈的数据结构。所谓堆栈,就是一组相同数据类型的集合,所有的操作均在结构的顶端进行,具有“后进先出”的特征。

3.贪心法

贪心法又称为贪婪算法,从某一七点开始,在每一个解决问题的步骤中使用贪心算法,即采用再当前状态下最有利或者最优化的选择,持续在每一个步骤中选择最佳方法,并且逐步逼近给定的目标,当达到某一个步骤不能再继续前进时,算法停止。

哈夫曼编码经常应用于数据的压缩,是可以根据数据的出现频率来构建二叉树。数据的存储时数据处理的两个重要领域,两者都和数据量的大小息息相关,哈夫曼树正好可以解决数据大小的问题。

4.动态规划法

类似于分治法。

如果一个问题的答案与子问题相关,就能将大问题拆解成小问题没其中与分治法最大的不同就是可以将每一个子问题的答案都存储起来,这样的做法不但可以减少再次计算的时间,而且可以将这些解组合成大的问题的解,故而可以解决再次计算的问题。

在这里插入图片描述

5.迭代算法

我无法使用公式一次求解,而需要使用重复结构重复执行一段程序代码来求得答案。

6.枚举法

枚举法是一种常见的数学方法,核心思想是列举所有的可能。

根据问题要求逐一列举问题的答案,或者为了便于解决问题把问题分为不重复、不遗漏的有限种可能情况,并 加以解决,最终达到解决问题的目的。

7.回溯法

回溯法也是枚举法的一种。对于某些问题而言,回溯法是一种可以找出所有解的一般性算法,同时避免美剧不正确的数值。一旦发现不正确的数值,回溯法就不再低轨道下一层,而是回溯到刷上一层你,以节省时间,是一种走不通就退回再走的方式。它的特点主要时搜索过程种寻找问题的解,当发现不满足求解条件时就回溯,尝试别的路径,避免无效搜索。

今天就到这里了,今天主要记录了几种常用算法,并且有大致的解释,接下来将会一一解释各个算法的作用及用法。


http://www.ppmy.cn/news/107633.html

相关文章

分布式时序数据库DolphinDB

简介 DolphinDB不仅可作为分布式数据仓库或者内存数据库来使用,而且自带丰富的计算工具,可作为一个研究工具或研究平台来使用。DolphinDB对时间序列数据的处理特别友好,非常适合量化金融、物联网等领域的海量数据分析。例如在量化金融领域的交…

ISO21434 项目网络安全管理

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全责任 4.2 网络安全规划 4.3 裁剪 4.4 重用 4.5 非上下文组件 4.6 现成组件 4.7 网络安全案例(Cybersecurity case) 4.8 网络安全评估&#…

如何使用ODX描述诊断会话和安全等级

ODX 2.2是由ASAM(自动化及测量系统标准协会)提出的诊断标准,是一种基于XML语言的开放式诊断数据格式,已在国际上得到广泛使用。目前,ODX诊断标准已被国内各大OEM采用,但在ODX数据开发阶段,ODX诊…

【Mysql】| 超详细常见bug及解决方案

目录 一. 🌟 引入话题二. 🌟 引出bug1.1 查看bug1.2 Problem Solving2.1 查看bug2.2 Problem Solving3.1 字段长度异常3.2 Problem Solving 三. 🌟 最后 一. 🌟 引入话题 MySQL是一款广泛使用的开源数据库管理系统,它…

如何正确选择集体渲染(云渲染)和gpu离线渲染

在数字娱乐领域,渲染是制作高质量影像的关键步骤之一。随着技术的不断发展和应用的广泛普及,渲染方式也在不断演进。目前,集体渲染(云渲染)和GPU离线渲染是两种比较流行的渲染方式。那么,哪种方式会更快呢&…

【算法竞赛进阶指南】141.周期 题解 KMP 最小循环节

题目描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 5 5 5 个前缀,分别是 a,ab,aba,abaa,abaab。 我们希望知道一个 N N N 位字符串 S S S 的前缀是否具有循环节。 换言之…

RHCE 作业二

1. 第一步:配置服务端server 1>安装chrony [rootserver ~]# yum install chrony -y 2>编辑配置文件,修改为阿里的时间服务地址 [rootserver ~]# vim /etc/chrony.conf 3> 重启服务 [rootserver ~]# systemctl restart chronyd 4>测试 5>…

ChatGPT已能模仿任何写作风格,让你的自媒体快速起号

我认识的一两个技术大佬目前失业在家,压力不小。对于现在的就业市场来说,再找工作,高不成低不就。他们的薪资,一般企业无法承受,大厂岗位又在缩减。今年真正感受到了寒冬。 对于我们还有饭吃的程序员,现在不…