2018年12月24日
摘要: 实践题目 :工作分配问题 问题描述: 设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij 。 设计一个算法,对于给定的工作费用,为每一个人都分配1 件不同的工作,并使总费用达到最小。 输入格式: 输入数据的第一行有1 个正整数n (1≤n≤20)。接下来的n行,每行n个数,表示工作费 阅读全文
posted @ 2018-12-24 19:44 Star^Bright 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 你对回溯算法的理解(2分) 请说明“子集和”问题的解空间结构和约束函数(2分) 请说明在本章学习过程中遇到的问题及结对编程的情况(1分) 1.你对回溯算法的理解 对回溯算法的理解,回溯法是一种能进则进,进不了则换,换不了则退的方法,从根节点一直遍历到各个叶节点得到最优解,每次得到一个解就回溯到父节点 阅读全文
posted @ 2018-12-24 19:24 Star^Bright 阅读(97) 评论(0) 推荐(0) 编辑
  2018年12月2日
摘要: 一:贪心算法的理解①通过求解一问题而得到最优解②做贪心选择确定子问题 二:请说明汽车加油问题的贪心选择性质 汽车加油问题,主要是把一整段分成一个个问题:每次到站都检查自己的油是否足够走完下一程,如果不够就加油,够就继续往前走。三:问题结对编程时很难做出最好的贪心选择 阅读全文
posted @ 2018-12-02 18:13 Star^Bright 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 4. 算法时间及空间复杂度分析(要有分析过程) o(logN)一次while循环,且x>c时就跳出循环 5. 心得体会(对本次实践收获及疑惑进行总结) 本题十分简单,却体现出了贪心算法的特点,在每一个小问题解决后,相应的大问题也会得到解决。 阅读全文
posted @ 2018-12-02 17:14 Star^Bright 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 4.算法时间及空间复杂度分析(要有分析过程) for(int i=n;i>=1;i--){ for (int j=1;j<=i;j++){ dp[i][j]=max(dp[i+1][j]+val[i][j],dp[i+1][j+1]+val[i][j]); } 因为算法是两层for循环,算法复杂度为 阅读全文
posted @ 2018-12-02 17:07 Star^Bright 阅读(89) 评论(0) 推荐(0) 编辑
  2018年11月29日
摘要: 1.你对动态规划算法的理解 动态规划就是将每个大问题分解成若干个相同的子问题,然后通过解决子问题来解决大问题。 2.分别列出编程题1、2的递归方程 1)c[i][j]=c[i-1][j-1]+1 i,j>0;xi != yi ,max{c[i][j-1],c[i-1][j] i,j > 0;xi!= 阅读全文
posted @ 2018-11-29 23:04 Star^Bright 阅读(87) 评论(0) 推荐(0) 编辑
  2018年10月14日
摘要: 算法时间及空间复杂度分析(要有分析过程):①时间复杂度:对于我的算法时间复杂度应该是O(logn),搜索我要的数的最坏情况就是把每一个新数组都分割一遍才找到我要的数,所以应该是O(logn)②空间复杂度:O(1),二分法的辅助空间应该只需要一个,所以是O(1) 心得体会(对本次实践收获及疑惑进行总结 阅读全文
posted @ 2018-10-14 23:08 Star^Bright 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1、请谈一下你对二分法思想的体会 二分法就是通过对有序数组的多次折半来更好的找出所寻找的数字的位置,由此得知二分法的时间复杂度应该就是O(logN),这比传统的顺序查找法好像快了不少, 顺序搜索的时间复杂度是O(N)。我对二分搜索法的理解就是是通过一点点缩小数组的大小来最终确定我所找的数的位置。在实 阅读全文
posted @ 2018-10-14 22:57 Star^Bright 阅读(98) 评论(0) 推荐(0) 编辑