一,问题介绍 最近一直在看贪心算法的正确性证明(如何证明贪心算法获得的解一定是最优解),感觉“剪枝”技巧用得比较多。再看了下《算法导论》中贪心算法一章里面的一个练习 找换硬币问题。这个问题对于某些 面值的硬币 是有最优解的,故记录下其中的一些证明思路。 考虑用最少的硬币数 来找 n 分钱的问题,假设 ...
分类:
编程语言 时间:
2016-06-11 17:30:46
阅读次数:
709
这篇文章主要用来记录我对《算法导论》 贪心算法一章中的“活动选择问题”的动态规划求解和贪心算法求解 的思路和理解。 主要涉及到以下几个方面的内容: ①什么是活动选择问题 粗略提下,详细请参考《算法导论》 ②活动选择问题的DP(Dynamic programming)求解--DP求解问题的思路 ③活动 ...
分类:
编程语言 时间:
2016-06-10 17:53:13
阅读次数:
481
高等数学和算法导论中都遇到这个东西,谈一谈自己的理解吧 O,Ω,Θ,ω和ο 我觉得是函数之间增长量级大小关系的一种比较 影响两个函数大小关系的主要是最高项的系数和函数本身的内在增长性质(幂次高低,什么函数等等) Θ刻画的就是两个内在增长性质一样的函数,所以他们的大小只受常数倍倍的系数影响 ω:非渐进 ...
分类:
其他好文 时间:
2016-06-08 12:14:00
阅读次数:
233
一、概念
(1)数组的线性序是由数组的下标决定的,链表中的顺序是由各对象中的指针所决定的
(2)链表结点结构
node *prev;
node *next;
int key;
(3)链表结点
node *head;
node *nil;//哨兵
(4)对链表的操作
LIST-SEARCH(L, k)
LIST-INSERT(L, x)
LIST-DELETE(L, x)...
分类:
编程语言 时间:
2016-06-05 14:07:11
阅读次数:
378
红黑树一直是数据结构中的难点,大部分关于红黑树的学习资料(包括《算法导论》)对于这部分的讲解都是上来就下定义,告诉我们红黑树这个性质那个性质,插入删除要注意1234点,但是基本没有讲为什么这样定义红色和黑色,让人理解起来十分费力。直到我看了下图这本树中关于红黑树部分的讲解,一时间豁然开朗,上网查了下 ...
分类:
其他好文 时间:
2016-06-04 17:54:22
阅读次数:
246
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起... ...
分类:
编程语言 时间:
2016-05-27 23:31:57
阅读次数:
192
本文首先讲解递归式的迭代求解方法,然后给出主定理的推导过程。(该推导过程是我为了好记主定理的推导过程,建议读者手动推导,当然如有错误,请交流指正) 本文是 算法导论课程的复习主定理部分: 1.递归式的迭代求解 ...
分类:
其他好文 时间:
2016-05-25 22:24:32
阅读次数:
715
搜索“计算机科学”有三本经典的书籍计算机程序的构造和解释2004年出版40.10元计算机科学丛书:深入理解计算机系统2011年出版68.90元算法导论(第三版)2013年7月83.20元今天考虑了一下,决定买其中一本和另外两本计算机程序的构造和解释这个最便宜用Alice学编程动手玩转Scratc..
分类:
其他好文 时间:
2016-05-22 18:35:30
阅读次数:
139
前言
之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留言。...
分类:
编程语言 时间:
2016-05-22 00:46:41
阅读次数:
218