![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 59
加油加油再加油x
这个作者很懒,什么都没留下…
展开
-
【人工智能】对贝叶斯网络进行吉布斯采样
对贝叶斯网络进行吉布斯采样原创 2023-02-13 19:35:22 · 1506 阅读 · 5 评论 -
KMP算法
前缀和后缀的概念(以aabaa为例)所有的前缀和后缀如下下面是代码#include<iostream>#include<string>#include<vector>using namespace std; // next数组 next[i]表示p串的相同前后缀最大长度// next[j-1] 也可以看做是 p[j]和s[i]匹配不上,p下一个需要跳转的字符位置// 求next数组可以看成是一个动态规划的过程int main(int argc.原创 2021-09-16 12:38:54 · 265 阅读 · 0 评论 -
【算法】部分图论算法
最短路构造赋权图G(V,E,W)G(V,E,W)G(V,E,W),顶点集为V={v1,v2,...,vn}V = \{v_1,v_2,...,v_n\}V={v1,v2,...,vn},EEE为边的集合;WWW为顶点之间的距离(权值)矩阵,W(vivj)W(v_iv_j)W(vivj)表示顶点viv_ivi到顶点vjv_jvj的距离,若顶点viv_ivi与顶点vjv_jvj之间无路连接,则记W(vivj)=∞W(v_iv_j)=\inftyW(vivj)=∞;同时,记W(vivi)=原创 2020-09-03 16:29:29 · 399 阅读 · 0 评论 -
【算法】动态规划
动态规划将待求解问题分解成若干个子问题,分阶段求解子问题,前一阶段子问题的解成为求后续阶段子问题的解的计算信息,最后用这些子问题的最优解构造出原问题的最优解。适合用动态规划求解的问题的特征(1) 子问题重叠性①子问题重复②子问题的解在下一阶段决策中,延续子问题多次使用(2) 最优子结构一个问题的最优解包含着它的子问题的最优解基本步骤(1) 找出最优解的性质,并刻画其结构特征。(2) 按最优解的性质,划分子问题及演算的阶段,递推求解最优解。(3) 以自底向上或自顶向下的记忆化方法 (原创 2020-07-22 01:20:22 · 297 阅读 · 2 评论 -
【算法】贪心算法
贪心算法• 每一步的判断都是一个当前最优的抉择,这个抉择计算设计的好坏,决定了算法的成败• 多步判断过程,最终的判断序列对应于问题的最优解• 适用于能够由 局部最优达到全局最优的优化问题• 需要对具体的贪心算法的正确性进行必要的证明例题1学生有 n 项活动申请使用某一个会议室,每项活动都有一个开始时间和一个结束时间。任何两个活动都不能同时使用这个会议室。问如何安排这些活动,使得被安排活动的数量达到最多?【思路】:设共有nnn项活动,数列{En}\{E_n\}{En}是这n项活动结束时间序列,原创 2020-07-21 21:27:39 · 510 阅读 · 0 评论 -
【算法】回溯法
回溯法回溯法:在约束条件下对解空间树进行深度优先搜索的过程,并在搜索过程中剪去那些不满足条件的分支。问题的解: 为 n 元组 (X 1 ,…,X i ,…X n ) ,其中 X i 选自有限集 S · ,基本策略:当选出一组值 X=(x 1 ,…,x i ,…x n ) 能够使评价函数 P(x 1 ,…,x i ,…x n )满足问题的某种约束条件或到达极值。每次只考虑一个分量,逐次扩大建立 n 元组,并随时用评价函数 P i (X 1 ,…,X i ,…X n ) 去判断正在形成的 n 元组是否有成原创 2020-07-21 15:04:46 · 391 阅读 · 0 评论 -
【算法】分治法
分治法分治思想:把一个较大的问题分解成几个与原问题相似的子问题,找到求出这几个子问题的解法后,再以适当的方法组织,把它们合成求整个问题的解。分治算法求解问题的步骤:(1) 分解:将要解决的问题划分成若干规模较小的同类问题;(2) 求解:当子问题划分得足够小时,用较简单的方法解决;(3) 合并:按原问题的要求,将子问题的解逐层合并构成原问题的解。例题1大整数乘法:设 X, Y 是两个 n 位的十进制数,求 X*Y 。【思路】:设X,Y均有n位(若X,Y有一方不够n位,补零即可)可原创 2020-07-21 14:54:47 · 1102 阅读 · 0 评论 -
【算法】蛮力法
前言概念蛮力法(brute force):直接基于问题的描述和所涉及的概念定义的进行算法设计,简单而直接。蛮力法应用特点蛮力法所能解决的问题跨越的领域非常广泛。对于一些重要的问题,运用蛮力策略可以设计出具备一定实用价值的算法,并且不用限制实例的规模。当要解决的问题实例不多并且可以接受蛮力法的运算速度时,蛮力法的设计代价通常较为低廉。蛮力算法可以作为衡量其它算法的准绳,服务于研究或教学。枚举法算法框架依据问题,设定枚举范围;找出约束条件,建立计算模型;利用计算模型在枚举范围内搜索原创 2020-07-20 16:25:02 · 2176 阅读 · 0 评论 -
【算法】迭代法
简单迭代运算方程求解非线性方程线性方程组的近似解法线性规划原创 2020-07-20 12:46:04 · 4656 阅读 · 0 评论 -
【算法】算法分析基础
前言衡量算法对计算机资源的使用共有两方面计算资源(时间)算法采用的数学模型算法设计的策略问题的规模计算方法:(1)m种元运算;(2)每种元运算执行的时间:t1,t2,⋯ ,tmt_1,t_2,\cdots,t_mt1,t2,⋯,tm(3)每种元运算执行的次数:e1,e2,⋯ ,eme_1,e_2,\cdots,e_me1,e2,⋯,em(4)元运算与问题规模的关系:∀ei(n),1≤i≤m\forall e_i(n),1\leq i\leq m∀ei(n),1≤i≤m若原创 2020-07-19 23:37:50 · 661 阅读 · 0 评论 -
【算法】算法基础
算法基本概念算法(Algorithm)是对解题方案准确而完整的描述,是解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。引子—>算法设计步骤求任意两个非负整数最大公约数问题分析主要考虑两种算法来进行问题求解穷举法欧几里得算法算法策略/建立计算模型设a>b>0,求a,b最大公约数穷举法{r=min{a,b}初始化(a mod r) and (b mod r)==0满足则r为最大公约数r=r−1循环\left\{原创 2020-07-19 20:14:46 · 418 阅读 · 1 评论 -
【算法】开篇
前言最近出一系列算法的博客,以供复习。今天先列出一个纲,明天开始写!什么叫算法算法(algorithm),在数学(算学)和计算机科学之中,为任何一系列良定义的具体计算步骤,常用于计算、数据处理和自动推理。作为一个有效方法,算法被用于计算函数,它包含了一系列定义清晰的指令,并可于有限的时间及空间内清楚的表述出来。算法中的指令描述的是一个计算,当其运行时能从一个初始状态和初始输入(可能为空)开始,经过一系列有限而清晰定义的状态最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。包括随原创 2020-07-18 22:16:01 · 847 阅读 · 0 评论 -
【算法】匈牙利算法
在B站上看的算法视频-匈牙利算法他讲到了一道题杭电的过山车2063题代码奉上#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int max_n=1000;int line[max_n][max_n],used[max_n],gao_p...原创 2019-04-09 00:12:14 · 173 阅读 · 0 评论 -
【算法】n阶行列式求值 全排列
行列式求值&amp;amp;&amp;amp;全排列个人感觉自己写的行列式求值的程序与全排列的程序有几分神似,所以就把它们放到一起啦。先来看求n阶行列式的程序#include&amp;lt;stdio.h&amp;gt;#include &amp;lt;stdlib.h&amp;gt;//C语言初学者,欢迎大家指正void show(int **p,int size)原创 2019-01-09 15:35:19 · 1894 阅读 · 2 评论