![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
OliverNeko
理想是最真实的现实。
展开
-
[算法笔记] 分治法
一、分治法概述 一、分治法设计思想 将一个难以直接解决的大问题,划分成一些规模较小的子问题,以便各个击破,分而治之。更一般地说,将要求解的原问题划分成 kkk 个较小规模的子问题,对这 kkk 个子问题分别求解。如果子问题的规模仍然不够小,则再将每个子问题划分为 kkk 个规模更小的子问题,如此分解下去,直到问题规模足够小,很容易求出其解为止,再将子问题的解合并为一个更大规模的问题的解,自底向...原创 2020-04-12 20:55:00 · 827 阅读 · 0 评论 -
[算法笔记] 贪心算法
一、简介 在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。 从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。 如果一个问题可以同时用几种方法解决,贪心算法应该是最好的...原创 2020-04-12 16:02:15 · 415 阅读 · 0 评论 -
[算法笔记] 浅析动态规划
一、动态规划的基本思想 动态规划算法通常用于求解某种具有最优性质的问题。 在这类问题中,可能会有许多可行解。每一个解都对应于一个值,目标是寻找最优解。 基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。 如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。 我们可以用一个表来记录所...原创 2020-04-11 16:57:57 · 222 阅读 · 0 评论 -
[数据结构笔记] 字符串
串的逻辑结构 串:零个或多个字符组成的有限序列。 串长度:串中所包含的字符个数。 空串:长度为0的串,记为:" "。 非空串通常记为: S=" s1 s2 …… sn " 其中:S是串名,双引号是定界符,双引号引起来的部分是串值 ,si(1≤i≤n)是一个任意字符。 子串:串中任意个连续的字符组成的子序列。 主串:包含子串的串。 子串的位置:子串的第一个字...原创 2019-11-06 14:41:58 · 152 阅读 · 0 评论 -
最小生成树算法——Kruskal算法
Kruskal算法是求加权连通图中最小生成树的算法。该算法将一个连通图中的边权从小到大排列,然后每次选取边权最小的点,用并查集将几个点合并成一个集合,直到找到第n-1条边为止。 该算法的时间复杂度主要取决于排列图中边权所使用的排序算法。 代码如下:bool cmp(const int x,const int y)//排序规则 { return w[i] < w[j]; } int fi原创 2016-09-05 21:25:23 · 370 阅读 · 0 评论 -
栈的实现
一、栈栈是一种运算受限的线性表。栈只允许在一端对数据进行操作,这一端被称为栈顶。相应的,栈的另一端被称为栈底。 栈可以想象为类似子弹匣的结构,元素只能从一端进入或弹出,先入栈的元素被最后弹出。以下为该数据结构操作实现过程: 1.栈的定义DataType Stack[Size]; int top = 0; //栈顶为0,表示空栈2.判断栈是否为空和满 栈空:bool isStuckEmpty(原创 2016-08-24 19:01:45 · 248 阅读 · 0 评论