算法
文章平均质量分 62
Violet-Zhao
不忘初心,方得始终
展开
-
八大排序算法
*概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。*我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平...转载 2018-03-20 17:36:28 · 245 阅读 · 0 评论 -
动态规划-完全背包系列
完全背包与01背包的区别在于,01背包中所有物品要么选要不不选,完全背包是所有物品可以选任意次。完全背包与01背包很相似,可以将完全背包转换成01背包,也可以找到其状态转移方程。1.完全背包 2.完全背包变形题-最小乘车费用 3.完全背包变形题-货币系统1.完全背包问题描述:有n件物品和一个容量为m的背包,每件物品都有无限件可用,第i件物品的体积为w[i],价值是v[i...原创 2018-06-03 13:11:11 · 1009 阅读 · 0 评论 -
LIS模型
之前了解过动态规划中背包模型,今天总结一下动态规划中常用的LIS模型(最长递增子序列),许多动态规划算法题是由其变形可解。最长递增子序列,有时间复杂度为o(n^2)解法,有优化后的O(nlogn)解法1.最长递增子序列问题描述:给定序列,求出序列中最长递增子序列分析:要求长度为i的序列{a1,a2,…..ai}的最长递增子序列,需要先求出长度为i-1的序列中以各元素结尾的最长递...原创 2018-06-11 18:30:16 · 687 阅读 · 0 评论 -
动态规划前序
最近在学动态规划,做一个小总结,同时也督促自己继续做总结。1.什么是动态规划?什么样的问题适用于动态规划? 2.动态规划的特征 3.动态规划适用条件 4.常用解题步骤 5.常用模型1.什么是动态规划?什么样的问题适用于动态规划? 如果要求一个问题的最优解(最大值或最小值),而且该问题能够分解为若干个子问题,并且子问题之间存在重叠的子问题,则考虑使用动态规划。 使用递...原创 2018-05-29 19:52:15 · 231 阅读 · 0 评论 -
动态规划-01背包系列题
动态规划-01背包系列题1.01背包问题解题思路 2.01背包问题实现 3.原创 2018-05-29 22:12:26 · 999 阅读 · 0 评论 -
动态规划-多重背包系列
本文将对背包问题中的第三类背包问题——多重背包进行描述并给出相关例题问题描述:有n件物品和一个容量为m的背包,第i件物品最多只有n[i]件可用,每件体积为w[i],每件的价值为v[i],求解将哪些物品放入背包中可使不超过背包容量并且价值最大?分析:对于第i件物品可以选0件,1件,……n[i]件状态转移方程:f(i,v) = max{f(i-1,v),f(i-1,v-k*w[i])+k*...原创 2018-06-06 21:01:16 · 278 阅读 · 0 评论 -
LCS
给定俩个序列X,Y,求出俩序列中最长公共子序列,子序列可以是不连续的。拿到这样的问题,如果使用暴力法,是枚举出X所有的子序列,判断子序列是否为Y的子序列,然后再从所有的子序列中找出长度最长的。这样做的话,时间复杂度为O(2^N),时间复杂度太高。在这种通过暴力法解决时,时间复杂度过高的情况下,我们可以考虑动态规划法。序列: X={x1,x2,,,xn} Y={y1,y2,,,ym}...原创 2018-06-14 18:06:03 · 1037 阅读 · 0 评论