随笔分类 -  算法导论

【算法导论】第15章,动态规划
摘要:动态规划问题的步骤 1、描述最优解的结构 2、递归定义最优解的值 3、自底向上计算最优解的值 4、由计算的结果构造最优解 一般要在第3步记录一些附加信息, 自底向上逐步计算还有另外一种方法,可以带备忘录自顶而下计算。 15.1 装配线调度 15.2 矩阵链乘法 15.3 动态规划原理 最优化问题应该 阅读全文

posted @ 2018-08-17 10:18 yesuuu 阅读(161) 评论(0) 推荐(0)

【算法导论】第14章,数据结构的扩张
摘要:使用lgn的时间查找顺序统计量: 将红黑树扩张 14.1 动态顺序统计 红黑树加一个记录size, size记录自己作为根节点的子树的大小 14.2 如何扩张数据结构 1、选择基础数据结构 2、确定要在基础数据结构上添加哪些信息 3、验证可用基础数据结构上的基本修改操作维护新信息 4、设计新的操作 阅读全文

posted @ 2018-08-11 00:34 yesuuu 阅读(135) 评论(0) 推荐(0)

【算法导论】第13章,红黑树
摘要:红黑树是一种“平衡的”查找树,能确定动态集合操作时间为O(logn) 13.1 红黑树的性质 红黑树的每个节点除了 key, value, p, left, right之外,还有color, 有value的都视为内节点,如果没有儿子,认为儿子都是NIL, 红黑性质:1、每个节点要么红要么黑 2、根节 阅读全文

posted @ 2018-08-06 23:32 yesuuu 阅读(114) 评论(0) 推荐(0)

【算法导论】第12章,二叉搜索树
摘要:二叉搜索树支持很多动态集合操作,可以当作字典,也可以当作优先队列。 二叉搜索树基本操作的时间代价与树的高度成正比,log n 级别。随机构造的二叉搜索树的期望高度就是 log n。 每个节点包含信息:key,卫星数据,父, 左孩子,右孩子。 12.1 二叉搜索树的定义: 左子树小于节点,右子树大于节 阅读全文

posted @ 2018-08-05 22:26 yesuuu 阅读(299) 评论(0) 推荐(0)

【算法导论】第11章,散列表
摘要:散列表是实现字典的一种数据结构,是普通数组的推广, 原理是根据关键字计算出下标,用链接的方法解决冲突。 11.1 直接寻址表 如果关键字全集比较小,可以直接寻址。 关键是将key映射成为数字,是直接计算的。如果映射规则比较复杂,导致数字的范围很大,而有效的只有很少一部分时,直接寻址法就很蠢。 11. 阅读全文

posted @ 2018-05-21 22:18 yesuuu 阅读(180) 评论(0) 推荐(0)

【算法导论】第10章,基本数据结构
摘要:10.1 栈和队列 都是动态集合,Delete操作是预先设定好的。 栈 Insert:push Delete: pop 实现,一个计数器记录元素数量 同理,队列实现是一个计数器记录首尾元素的位置,如果首元素太过靠后,尾元素可以过来。 10.2 链表 双向链表:每一个元素是一个对象,有prev, ne 阅读全文

posted @ 2018-04-27 09:02 yesuuu 阅读(132) 评论(0) 推荐(0)

【算法导论】第8、9章,线性时间排序,中位数顺序统计量
摘要:8.1 排序算法下界 比较排序:次序依赖之间的比较: 由于两两比较,因此可以用决策树来刻画,那么节点数就要满足大于 n!, 那么就需要nlogn级别的比较数量。 8.2 计数排序 n个输入数据,每个都是0-k之间的整数。 算法:从头到尾遍历数组,把0-k累积的数量记一下,然后做累和,然后再遍历一遍, 阅读全文

posted @ 2018-04-18 23:42 yesuuu 阅读(178) 评论(0) 推荐(0)

【算法导论】第5章,概率分析和随机算法
摘要:5.1 雇佣问题 每面试一个人,如果比之前的人强,就要现场雇佣,花费x元,共面试n个人,问总共花费多少元(期望)。 5.2 指示器随机变量 indicator random variable 示性变量 分析雇佣问题:对第i个人,被雇佣的概率是1/i,期望和 5.3 随机算法 就是每次运行的时间会不一 阅读全文

posted @ 2018-04-01 21:59 yesuuu 阅读(267) 评论(0) 推荐(0)

【算法导论】第3、4章,增长和递归式
摘要:【3】函数的增长 3.1 渐进的记号 \Theta(N):同阶,渐进确界 O(N): 渐进上界 o(N): 渐进紧上界 \Omega(N): 渐进下界 【4】递归式 三种解递归式的方法: 1、代换法 猜测解的形式,用数学归纳法找到有效的常数,并证明。 2、递归树方法 将递归式转换为一棵树,节点表示递 阅读全文

posted @ 2018-04-01 21:38 yesuuu 阅读(496) 评论(0) 推荐(0)

【算法导论】第7章,快速排序
摘要:快排的优势: 1、期望为O(n lgn) 2、常数因子比较小 3、就地排序 4、在虚存环境很好工作 与合并排序一样是分治思想,但是不是从中间截断,而是通过partition过程代替取中位数的操作。 partition过程:下标p到r 每次选择最后一个元素为x,然后小的放前面,大的放后面,用ij两个坐 阅读全文

posted @ 2017-08-22 23:03 yesuuu 阅读(148) 评论(0) 推荐(0)

【算法导论】第6章,堆排序
摘要:6.1 堆数据结构 是一个完全二叉树,从左向右填充。 有两个属性:树大小、有效数据长度。可以用数据表示,1 2 4 8 这种形式。 可以分为两种形式:最大堆和最小堆。最大堆:根节点不比叶子节点小。 最大堆:堆排序。最小堆:优先队列。 6.2 保持最大堆的性质 假设两个子堆都满足,只需要根节点依次换下 阅读全文

posted @ 2017-08-22 21:55 yesuuu 阅读(234) 评论(0) 推荐(0)

【算法导论】第1、2章,算法入门
摘要:【1】算法简介 1.1 排序的重要问题: 1、排序项数 2、已经排序的程度、 3、项值的可能限制 4、计算机体系结构 5、储存设备的种类 1.2 衡量算法的主要标准:时间 & 空间 【2】算法入门 2.1 插入排序 循环不变式:前i个总是排好顺序的。增量法 插入排序python代码 2.2 算法简单 阅读全文

posted @ 2017-07-23 21:43 yesuuu 阅读(233) 评论(0) 推荐(0)

导航