![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
李小斌96
这个作者很懒,什么都没留下…
展开
-
算法笔记 冒泡排序
排序是指将一个无序序列按某个规则进行有序排列,而冒牌排序是排序算法中最基础的一种。先给出一个序列a,其中元素的个数为n,要求将他们按从小到大的顺序排序。 冒泡排序的本质在于交换,即每次通过交换的方式把当前剩余元素的最大值移动到一端,而当剩余元素减少为0时,排序结束。为了使排序过程更加清楚,举个例子。 现在有一个数组a,其中有5个元素,分别为a[0] = 3,a[1] = 4,a[2原创 2018-01-16 10:21:59 · 182 阅读 · 0 评论 -
算法笔记 树
树的定义和性质 现实中的树是由树根,茎干,树叶组成的,树的营养时由树根出发,通过茎干与树枝来不断传递,最终到达树叶的。在数据结构中,树则是用来概括这种传递关系的一种数据结构。为了简化,数据结构中把树枝分叉处,树叶,树根抽象为结点,其中树根抽象为根结点,且对一棵树来说最多存在一个根结点;把树叶概括为叶子结点,且叶子结点不再延伸出新的结点;把茎干和树枝统一抽象为边,且一条边只用来连接两个结点(一个原创 2018-01-16 14:31:55 · 790 阅读 · 0 评论 -
算法笔记 动态规划 递归做法
什么是动态规划动态规划是一种用来解决一类最优化问题的算法思想。简单来说,动态规划将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题打的最优解。需要注意的是,动态规划会将每个求解过的子问题的解记录下来,这样当下一次碰到同样的子问题时,就可以直接使用之前记录的结果,而不是重复计算。注意:虽然动态规划采用这种方式来提高计算效率,但不能说这种做法就是动态规划的核心。 一般可以使原创 2018-01-16 11:23:54 · 387 阅读 · 0 评论 -
算法笔记 动态规划 递推写法
什么是动态规划动态规划是一种用来解决一类最优化问题的算法思想。简单来说,动态规划将一个复杂的问题分解成若干个子问题,通过综合子问题的最优解来得到原问题打的最优解。需要注意的是,动态规划会将每个求解过的子问题的解记录下来,这样当下一次碰到同样的子问题时,就可以直接使用之前记录的结果,而不是重复计算。注意:虽然动态规划采用这种方式来提高计算效率,但不能说这种做法就是动态规划的核心。 一般可以使用递归原创 2018-01-25 09:36:21 · 1401 阅读 · 0 评论 -
算法笔记 简单贪心(月饼问题)
**概念** 贪心法是求解一类最优问题的方法,它总是考虑当前状态下局部最优(或较优)的策略,来使全局的结果达到最优(或较优)。显然,如果采取较优而非最优的策略(最优策略可能不存在或是不易想到),得到的全局结果也无法是最优的。而要获得最优结果,则要求中间的每步策略都是最优的,因此严谨使用贪心法来求解最优化问题需要对采取的策略进行证明。证明的一般思路是使用反证法和数学归纳法,即假设策略不能导致原创 2018-01-26 15:35:40 · 945 阅读 · 2 评论