
算法入门
文章平均质量分 93
怂怂的程序员
普通高校本科生
展开
-
最长公共子序列问题Python实现
最长公共子序列问题 问题介绍 最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列 ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列 —— [ 百度百科 ] 本文使用动态规划技术算法时间复杂度为Θ(mn),优于蛮力搜索的时间复杂度为Θ(m2n)。 使原创 2017-10-14 19:36:23 · 2402 阅读 · 1 评论 -
动态规划-背包问题、兑换零钱问题、旅行商问题
背包问题 问题介绍 假定需要将Goods={g1,g1,…gn}放入容量为ALL的背包内,volumej代表第i个物品的体积,valuej代表第j个物品的价值。我们要把这些物品装进背包,这些物品的体积不超过ALL,而且要使它们的总价值达到最大。因为背包不可包含一个以上的同类物品,所以一般称这样的背包问题为0/1背包问题,完全背包问题类似于兑换零钱问题。 解决思路 设原创 2017-10-29 16:15:12 · 2109 阅读 · 0 评论 -
优化快速排序的几种方法
快速排序1.基本思想 快速排序采用分治思想。经过一趟排序将待排序序列分割为独立的两部分,其中一部分的所有排序关键字均小于另一部分的所有排序关键字,再按上述方法对序列的两部分分别进行快速排序,整个排序过程可以递归执行,最终达到整个序列有序的目的。2.算法概述 分解:在待排序数列按照某种特定选取一个元素作为主元。利用主元对序列进行重排,使得序列分成独立的两个部分,其中原创 2017-10-25 12:00:14 · 751 阅读 · 0 评论