算法设计与分析
文章平均质量分 83
fei又菜又爱敲。。。
又菜又爱敲的小白,喜欢分享在求学生涯中所编写的代码
展开
-
程序设计与分析——最优编辑距离问题
最优编辑距离问题的分析过程、设计思路、代码、时间复杂度分析等原创 2023-08-22 08:43:37 · 319 阅读 · 1 评论 -
程序设计与分析——磁盘文件最优存储问题
当一个问题具有最优子结构性质时,可以用动态规划,有时可以用更为简单有效的算法——贪心算法,每一个子问题都贪心得到的结果整体也就是最优最“贪”的。贪心算法难点在于找到贪心策略,在解题的过程中我们要勇于尝试,不断试错,不断优化策略才有可能找到最好的贪心策略。原创 2023-08-22 08:34:33 · 1120 阅读 · 1 评论 -
程序设计与分析——半数集问题
在计算机算法设计与分析中,递归技术是十分有用的。使用递归技术往往使函数的定义和算法的描述更加便捷且易于理解。当然,递归算法存在一个很大的问题在于很容易出现子问题重复计算,增大了时间复杂度。可以考虑增设一个记忆数组用来储存函数运算得到的结果,等下次输入参数相同时直接从记忆数组中获取,从而大大减少计算量。也可以采用动态规划的算法优化半数集问题。原创 2023-08-22 08:27:12 · 784 阅读 · 1 评论 -
程序设计与分析_有重复元素的排列问题
考虑第一个位置填写什么字母,依次遍历26个英文字母,先监测当前这个字母的个数,若为0则遍历下一个字母,若不为0则把字母放入ways中,同时zi[i]--(因为已经该字母使用过一次了,不能再用了),调用dfs函数考虑第二个位置填写什么字母……输入实际上就是告诉程序参与排列的字母是什么和它的个数,所以可以考虑创建能盛放26个数字的数组zi,下标分别对应26个不同的英文字母,数字代表字母的个数。综上整体最坏时间复杂度为:T(n)=o(n)+o(n)+o(n^n)=o(n^n).。原创 2023-08-21 17:18:58 · 622 阅读 · 1 评论 -
程序设计与分析_字典序问题
总结:在计算机算法设计与分析中,递归技术是十分有用的。使用递归技术往往使函数的定义和算法的描述更加便捷且易于理解,有些数据结构本身就具有递归特性,特别适合用递归的形式来描述。而有些问题虽然本身并没有明显的递归结构,但用递归技术来求解,可以使设计出的算法易于分析和简洁。体会:递归问题的难点在于确定函数代表的具体含义和列出递归函数的表达式,每次分析递归问题时总是要冥思苦想,想不出一个适合的表达式,需要我在日后多加练习。原创 2023-08-20 01:27:12 · 766 阅读 · 1 评论