随笔分类 - 算法导论
摘要:打ACM的时候自从学会了使用 之后,就没有再深究排序了,以至于数据结构考试的时候关于快速排序,希尔排序,堆排序之类的一点不会。 总结(copy)一下算法导论上的知识点。 快速排序的原理 先想一个简单的问题,如何找到数组中的第$k$小 假设我们现在不会排序,会用什么方法呢? 我们可以采用分治的方法,找
阅读全文
摘要:在面试某手的时候,完成了一个有序链表的合并,之后面试官又要求用循环不变式来证明算法的正确性……循环不变式?这是啥 后来发现这是算法导论第一章的内容。 不会=算法导论没看 分析过程 必须证明三条性质 + 初始化:循环的第一次迭代之前,它为真 + 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍
阅读全文
摘要:引言 动态规划与分治方法类似,都是通过组合子问题的解来求解原问题.需要注意的是,动态规划(dynamic programming)这里的 并不是指编写计算机程序,而是指一种表格法. 分治方法 将问题划分为 互不相交 的子问题,递归地求解子问题,再将它们的解组合起来,求出原问题的解. 动态规划也是通过
阅读全文
摘要:引言 KMP算法应该是看了一次又一次,比赛的时候字符串不是我负责,所以学到的东西又还给网上的博客了…… 退役后再翻开看,看到模板,心想这不是$O(n^2)$的复杂度吗? 有两个循环也不能看做是$O(n^2)$的,这要用到摊还分析. [摊还分析]:https://www.cnblogs.com/sm
阅读全文
摘要:引言 一个哈希表多大合适? 数据量为$n$,如果哈希表无限大( =$n$),那么时间复杂度是$O(1)$的,不过很显然,虽然节省了时间,但是浪费了空间. 实际上在我们不知道数据量的情况下,我们无法确定哈希表的大小,这时我们有个很美丽的数据结构 动态表 动态表的工作原理 + 建立一个表,初始化大
阅读全文

浙公网安备 33010602011771号