1.1-1 给出一个真实世界的例子,其中包含下列某种计算问题:排序,确定多矩阵相乘的最佳顺序、或者找出凸壳。 排序: 成绩排序 大多数的数据库都会用到排序 淘宝价格排序等 确定多矩阵相乘最佳顺序: 数字图像处理 模仿的矩阵模拟 找出凸壳: 这个我认为在选择最短路径的时候会用到, 另外看网上还提到找路 ...
分类:
编程语言 时间:
2020-04-12 16:03:28
阅读次数:
85
草草整理一下,以后再完善一点 堆排序的复杂度是比较稳定的$O(nlgn)$,并且具有空间原址性。 二叉堆是一个是一个数组,通过类似线段树的方式来表示父结点和子结点 其中1结点代表根,在大根堆中代表最大的数 任何子结点在循环前都可以看作一个平凡堆 大根堆中,每个结点都要比它的子结点大,维护这个性质,只 ...
分类:
编程语言 时间:
2020-04-08 20:53:12
阅读次数:
69
在面试某手的时候,完成了一个有序链表的合并,之后面试官又要求用循环不变式来证明算法的正确性……循环不变式?这是啥 后来发现这是算法导论第一章的内容。 不会=算法导论没看 分析过程 必须证明三条性质 + 初始化:循环的第一次迭代之前,它为真 + 保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍 ...
分类:
编程语言 时间:
2020-03-31 01:04:46
阅读次数:
111
本文仅代码,无理论解释 实话实说,我觉得这个算法在C系列的语言下,简直垃圾到爆炸……毕竟是一群完全不懂程序数学家对着纸弄出来的,看起来好像非常的有用,实际上耗时是非常爆炸的。 但是《算法导论》里有啊……然后上课又要求手写一个 于是我就手写了一个……我尽可能的减少使用的空间同时加快速度了,当 n = ...
分类:
编程语言 时间:
2020-03-29 22:41:38
阅读次数:
115
《算法导论(原书第2版)》一书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。本书专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法 ...
分类:
编程语言 时间:
2020-03-10 22:14:23
阅读次数:
69
递归程序在设计时很常见,有时能很大程度上简化问题解决的复杂性. 下面就算法导论的2.3-4习题进行解答. 具体就是写出插入排序的递归版本. ...
分类:
编程语言 时间:
2020-03-02 14:40:48
阅读次数:
62
《算法导论》图相关的内容贯穿很多章节,适用条件各异,而且都有证明过程。如果不打算熟记证明,仅仅是应用,遇到具体场景再去回忆适用于哪种算法不太方便。汇总一下便于查阅。 ...
分类:
编程语言 时间:
2020-03-02 09:16:40
阅读次数:
99
本文主要说明红黑树的插入和删除操作。 红黑树是满足以下性质的二叉搜索树: 1. 每个结点颜色或黑或红。 2. 根结点是黑色。 3. 每个叶结点(nil)为黑色。 4. 如果一个结点是红色,那么它的两个子节点都是黑色的。 5. 对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结 ...
分类:
其他好文 时间:
2020-03-01 14:30:16
阅读次数:
65
递归程序在设计时很常见,有时能很大程度上简化问题解决的复杂性. 下面就算法导论的2.3-4习题进行解答. 具体就是写出插入排序的递归版本. 1 void insert_sort(int a[],int n) 2 { 3 if(n==1) return ; 4 else 5 { 6 insert_so ...
分类:
编程语言 时间:
2020-03-01 14:25:00
阅读次数:
94
对于入门的同学不建议过度追求看上去很经典的书籍,例如:《算法导论》/《算法》这些书。可以看一些相对容易看的书来入门,例如《大话数据结构》、《算法图解》。 《大话数据结构》这本书最大的特点是它将理论讲的非常有趣,不枯燥。而且每个数据结构和算法作者都结合生活中的例子进行讲解,虽然这本书有400+页,但是 ...
分类:
编程语言 时间:
2020-02-22 00:29:16
阅读次数:
85