算法导论
吃不尽的lemon
——What's the secret to good comedy?
——Timing.
——And what's courage?
——Grace under pressure.
——Who's the boss?
——I'm the boss.
展开
-
算法复习-一天突击
文章目录重点1 三种表示方法2. 递归式求解(递归树法)3.重点1 三种表示方法2. 递归式求解(递归树法)3.原创 2020-08-19 23:43:43 · 809 阅读 · 0 评论 -
DP:0-1背包问题
文章目录1.问题背景1.1 形式化定义蛮力枚举伪代码蛮力枚举:复杂度优化带备忘的递归再优化:递推实例rec数组追踪最优解伪代码时间复杂度动态规划分析0-1背包的步骤问题结构分析通过最优子结构建立递推公式自底向上计算通过计算结果追踪最优方案1.问题背景1.1 形式化定义蛮力枚举伪代码蛮力枚举:复杂度优化带备忘的递归再优化:递推实例rec数组追踪最优解伪代码时间复杂度动态规划分析0-1背包的步骤问题结构分析通过最优子结构建立递推公式自底向原创 2020-08-19 16:06:33 · 582 阅读 · 0 评论 -
算法设计与分析:递归式分析
一.递归树分析递归式二.代入法三. 主定理法原创 2020-08-19 11:04:26 · 287 阅读 · 0 评论 -
算法设计与分析-动态规划-数字三角形(2)
文章目录有了[数字三角形(1)](https://blog.csdn.net/qq_40427276/article/details/106079994)的基础,下面,我们进一步改进向着动态规划进发。进一步的改进分析so递归到动态规划的一般转化思路1.分解为子问题2.确定状态3.找边界值4.确定状态转移方程(递推公式)什么问题可以用动态规划1.最优子结构2.无后效性有了数字三角形(1)的基础,下面,我们进一步改进向着动态规划进发。进一步的改进递归虽然简单方便,效率实在不敢恭维,许多时候我们需要把递归改原创 2020-05-12 20:32:26 · 604 阅读 · 0 评论 -
算法设计与分析——动态规划-数字三角形(1)
文章目录引入小例题1 数字三角形(分析为什么不能单纯用递归思路解决)改进:存放计算结果动手实现:引入小例题1 数字三角形(分析为什么不能单纯用递归思路解决)本题用递归做看似十分简单,但递归的缺点是太慢了,特别对于本题而言,重复计算十分多。改进:存放计算结果动手实现:#include <iostream>#include <algorithm>using namespace std;#define MAX 101int D[MAX][MAX];原创 2020-05-12 19:58:14 · 773 阅读 · 0 评论 -
leetcode-- 盛最多水的容器
11.盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2目标:最大面积显然本题是寻找水覆盖的最大面积=height*width 其中...原创 2020-05-02 19:53:26 · 200 阅读 · 0 评论 -
算法设计与分析 递归式求解和证明题
数学归纳法证明,变量代换递归树法原创 2020-05-01 09:34:43 · 835 阅读 · 0 评论 -
常用排序算法稳定性分析
我们分析一下稳定性的好处:(1)如果排序算法是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所利用。基数排序就是这样,先按低位排序,逐次按高位排序,那么,低位相同的数据元素其先后位置顺序即使在高位也相同时是不会改变的。详细请参见随笔《基数排序》。(2)学习排序原理时,可能编的程序里面要排序的元素都是简单类型,实际上真正应用时,可能是对一个复杂类型(自...转载 2020-04-17 09:45:38 · 251 阅读 · 0 评论 -
算法设计与分析
1.插入排序插入排序从第二个数开始,拿出第二个数进行向前插入排序,一直到最后一个数向前做插入排序。算法稳定。插入排序的时间复杂度为O(n2),空间复杂度为O(1)。最好的时间复杂度是O(n),最坏也就是平均是O(n2)算法实现package com.arithmetic.sort; /** * @Description * 功能:实现插入排序 * 从第二个数开始,拿出第二个数...原创 2020-02-19 14:09:08 · 392 阅读 · 0 评论 -
n皇后问题
八皇后问题是一个经典的算法问题从64个格子中选8个格子,任意2个格子都不在同一行、同一列或同一个对角线根据组合数学:C64 取8,一共有4.426×10的9次方种方案最暴力的解法当然是八个for循环,每种情况都要尝试,效率太低。为简化运算我们分析一下限制条件1.由不同行且棋盘为8*8故每行都有一个皇后。我们只需要确定它的列用一个a[8]数组存储即可2.对角线条件观察很容易发现...原创 2020-02-12 10:46:56 · 180 阅读 · 0 评论 -
算法导论一
文章目录1.算法分析是什么1.我们首要关注性能(效率)2.也许比性能更重要的3.为什么关注性能2.算法的重要性3.排序问题1.算法分析是什么The analysis of algorithm is the theoretical study of computer program performance and resource usage.算法分析是理论研究关于计算机程序性能和资源利用的研究...原创 2019-07-30 09:16:29 · 336 阅读 · 0 评论