![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
数据结构、算法
lkq_primer
软件工程研二在读
展开
-
算法导论-01背包最优子结构与分数背包贪心选择性质证明
按照自己的理解写的原创 2020-09-09 22:19:44 · 2316 阅读 · 0 评论 -
算法导论-贪心算法 -活动选择问题补充
递归的方法://res为成员变量,注意s,f数组人为地在开头加一个0,调用参数(s,f,0,n)public void recuract(int[]s,int[]f,int k,int n){ int m = k+1; while(m<=n&&s[m]<f[k]){ m = m+1; } if(m<=n){ res = res+" "+m; recuract(s,f,m,n); ..原创 2020-08-28 22:17:07 · 115 阅读 · 0 评论 -
算法导论-贪心算法-活动选择问题
先给出一个我写的动态规划方法的解法,求出最大活动集合中活动的个数。public class Activitychoice { //s,f是活动的开始时间和结束时间数组 public static int[] s={1,3,0,5,3,5,6,8,8,2,12}; public static int[] f={4,5,6,7,9,9,10,11,12,14,16}; public static int mmax = 0; public static int acti..原创 2020-08-26 22:55:08 · 251 阅读 · 0 评论 -
算法导论-渐近记号
原创 2020-06-26 16:56:47 · 150 阅读 · 0 评论 -
算法导论-动态规划-最长公共子序列(LCS)
//计算两个序列的LCS长度和序列,例如x为{A,B,C,B,D,A,B} y为{B,D,C,A,B,A}public static void calcLcs(ArrayList<Character>x,ArrayList<Character>y){ int m = x.size(); int n = y.size(); int[][] b = new int[m+1][n+1]; int [][]c = new int[m+1][n+1];...原创 2020-06-13 11:06:33 · 270 阅读 · 0 评论 -
算法导论-动态规划-矩阵链乘法
CSDN写公式太蛋疼,所以在Word里写完截图发这。//p 按照从左到右的顺序依次放入矩阵的长宽,例如A m*n B n*y C y*j 则p为 {m,n,y,j}public static void matrixchainorder(ArrayList<Integer> p){ int n = p.size()-1; int [][] m =new int[n+1][n+1]; int [][] s= new int[n][n+1];原创 2020-06-05 20:51:56 · 187 阅读 · 0 评论 -
算法导论-动态规划-钢条切割补充
问题: 在求出钢条切割的最高价格后,求出最优切割方案解: //给出价格数组p,钢条长度n,得出切割的方案。例如p ={-1,1,5,8,9,10,17,17,20,24,30},n=7,输出1,6 public static void slicepos(int[]p,int n){ int n2 = getprice4(p,n); System.out.println(n2); if(n-n2>0){ ...原创 2020-05-30 15:32:52 · 248 阅读 · 0 评论 -
算法导论-动态规划-钢条切割
问题:有一个长度为n的钢条,还有一个长度为n的价格表,此表对应钢条长度1至n对应的价格,如何切割钢条能得到最大的收益?解:法1: //原始的递归方法解决 public static int getprice(int[]p,int n){ if(n==0){ return 0; } int q =-1; for(int i = 0;i<n;++i){ q=Math.max(q,p[i]+get原创 2020-05-30 00:00:57 · 171 阅读 · 0 评论