算法
取个程序猿的名字
这个作者很懒,什么都没留下…
展开
-
算法——分治法
分治法:a^n计算的时间复杂度O(logn)斐波那契数列Fn的时间复杂度O(logn):快速排序算法:1:分为两个n/2子问题的情况:T(n)=2*T(n/2)+n O(nlogn)2:分为一个1/10,一个9/10的情况:T(n)=T(1n/10)+T(9n/10)+n.3:分为1和n-1:T(n)=T(n-1)+n找最大值和最小值:两两分组比较,再依次比较找第二大的...原创 2020-01-02 15:11:10 · 367 阅读 · 0 评论 -
算法——时间复杂度
大O:低于或者等于小o:低于大嘎玛:大于或者等于小w:大于theta:等于Hanoi问题:T(n)=2T(n-1)+1结果为T(n)=2 ^n-1二分插入排序:二分查找:解递归方程:形态一:Hanoi形态形态二:二分插入形态形态三:决策树形态形态四:主定理其实分别对应n^ logb(a)大于/小于/等于f(n)的情况...原创 2020-01-02 13:33:38 · 419 阅读 · 0 评论 -
算法分析——第十一周:线性规划
线性函数几个概念:1:基本解:仅符合约束条件的解2:可行解3:基本可行解:符合约束条件和非负条件的解4:最优解:标准型标准型的解几个引理:...原创 2019-11-25 19:32:20 · 223 阅读 · 1 评论 -
算法分析——第十周(回溯法的运用)
基本定义约束条件:搜索界时满足的前提 类似Weight代价函数:某个节点在理想条件下达到的最大值但又约束条件通常达不到目的:剪枝原因:对极大化问题父结点代价不小于子结点的代价(极小化问题相反)界:满足约束条件的最大值或者最小值 类似 Value背包问题4种物品,重量wi与价值vi分别为v1=1, v2=3, v3=5, v4=9w1=2, w2=3, w3=4, w4=7背...原创 2019-11-18 10:43:29 · 513 阅读 · 0 评论 -
算法分析——第九周(回溯法)
回溯算法理论依据: 多米诺性质典型实例八皇后问题:int flag[8]//标志数组,下标代表列数,值代表行数伪代码:for j=1 to 8: if flag[j]==0: if 处于同一对角线 then 不做处理 else flag[j]=i;时间复杂度:O(n^n)其实我也不是很清楚0-1背包问题getValue(index,value,we...原创 2019-11-11 11:37:36 · 1400 阅读 · 0 评论 -
算法分析——第八周作业【贪心算法】
技巧详解:1:交换论证【最短优先】【库房存货】2:k式归纳法(1)反证归纳【Dijstra】【prim】(2)分割归纳【同轴建站】3:n式归纳法(1)n+1化n归纳【哈夫曼编码】【Krustal】4:一点定理【硬币问题】使用交换论证进行验证题目一:题目二:题目三:类似,就不贴答案了使用k式归纳法利用分割归纳题目一:同轴建站类型题目二:同轴建站类型...原创 2019-11-04 17:02:07 · 289 阅读 · 0 评论 -
算法分析——第八周 贪心算法
非前缀码:避免歧义非前缀码可以用哈夫曼树表示平均传输位数:频率*长度哈夫曼树的构造:for i=1 to n-1 【省略】证明:很好证明。B(T)-B(T’)=[f(x)-f(a)][dx-da]+[f(y)-f(b)][d(y)-d(b)]>0引理二:x,y是同一父节点的树叶节点,哈夫曼树B(T)。将x,y去掉并使得x,y的父节点z f(z)=f(x)+f(y),则B(T...原创 2019-11-04 14:10:58 · 253 阅读 · 0 评论 -
算法分析——第七周:贪心法
贪心算法输入:S = {1, 2, … , n} 为n 项活动的集合, s i , f i 分别为活动 i 的开始和结束时间且活动i与j相容 si>fj 或sj<fi .求:最大的两两相容的活动集 A解法:贪心法,按活动截止时间排序后从最早开始时间出发,获得完成后选择下一个最近开始时间获得。时间复杂度:O(nlogn)+O(n)贪心法的证明方法:第一数学归纳法和第二数学...原创 2019-10-28 21:54:46 · 527 阅读 · 0 评论 -
算法——第六周作业【动态规划】
解答:类似于投资模型对于F(2):结果为:首先明确一点。相当于把这些任务分配给两个进程,耗时长的为最小调度时间那么两个进程的任务时间总和==T所以两个进程时间既不可能都大于1/2T,也不可能都小于1/2T.所以可以想象,必定是一个<1/2T,另一个>1/2T。那么我想让的就是让>1/2T的尽量小,也就是让<1/2T的尽量大。所以转化为0-1背包问题...原创 2019-10-21 20:32:24 · 549 阅读 · 0 评论 -
算法——第六周 动态规划
黑白图像存储像素点灰度值 : 0----255 ,为8 位二进制数图像的灰度值序列 : { p 1 , p 2 , … , p n } ,p i=[0,255]为第i 个像素点灰度值图像存储:每个像素的灰度值占8 位,有n个灰度值,所以总计空间为 8n但是如果是白点,占用空间实质上很少(有很多个0),所以实质上可以用较小的存储空间存储改进:同一段的像素占用位数相同,不同段可以不同我们将...原创 2019-10-21 13:36:22 · 431 阅读 · 0 评论 -
算法分析——第五周
动态规划问题:最短路径路径问题,从起点到终点的最短路径解决方法是利用动态规划,状态转移方程为什么要从后往前进行判断呢?因为单纯判断最短距离时,从后到前或者从前到后都是可以的。但是在实际编程时,对于这个图,我们用的是struct node {struct *node d;【向下顶点】struct *node u;【向上顶点】int d,u;【距离】}所以如果我们从前往后,有状...原创 2019-10-14 12:18:43 · 179 阅读 · 0 评论 -
算法——第四周习题集合
习题:使用的算法归纳:算法一:Select算法,在无序数组中找第k大数字,时间复杂度O(n)[如果是最大,最小,第二大,采用比较算法]算法二:补充:伪代码的书写规范1:其中注意if (----)then-----中判断语句可以使用(=,》=,《=)2:多重嵌套的话利用 if----then------ elseif-----then----- ...原创 2019-10-08 22:38:57 · 243 阅读 · 0 评论 -
算法笔记——第三周
选择问题:问题一:选取数组的最大和最小的值常规方法:比较W(n)= n-1+n-2=2n-3分治法:两两分组,每一组选出大元素和小元素,此时数组分成两部分,分别进行取极值...原创 2019-10-07 09:28:47 · 231 阅读 · 0 评论