题目取自:《数据结构与算法分析:C语言描述_原书第二版》——Mark Allen Weiss 练习1.3 如题。补充说明:假设仅有的I/O例程只处理单个数字并将其输出到终端,我们将这个例程命名为PrintDigit;例如"PrintDigit(4)" 将输出一个"4"到终端。思路:根据先...
分类:
其他好文 时间:
2014-12-01 23:56:54
阅读次数:
256
题目取自:《数据结构与算法分析:C语言描述_原书第二版》——Mark Allen Weiss练习1.5(a) 证明下列公式: logX 0 成立。(注意:计算机科学中,若无特别说明,所有对数都是以2为底的) 这个小题,看似简单。乍一看一高中证明题而已嘛。实则不然,我根据高中时常用的思路解了一下:.....
分类:
其他好文 时间:
2014-12-01 00:45:04
阅读次数:
424
想在技术的道路上走得远,必须有扎实的计算机基础。下面按照学习的先后顺序给出一些推荐的好书:编程语言《C程序设计语言》、离散数学《离散数学及其应用》、数据结构《数据结构与算法分析 C语言实现》、组成原理《深入理解计算机系统》(CSAPP)、操作系统《现代操作系统》、编译原理《编译原理》(龙书)、软件工程《计算机程序的构造和解释》(SICP)...
分类:
其他好文 时间:
2014-11-25 14:33:26
阅读次数:
263
0) 引论正如名字所言,最短路径算法就是为了找到一个图中,某一个点到其他点的最短路径或者是距离。最短路径算法一般分为四种情况:a) 无权重的最短路径b) 有权重的最短路径c) 边的权重为负的图d) 无圈的图ps:上面的情况针对的都是有向图。1)无权重的最短路径下图是一个例子:假设我们取点v3作为初始...
分类:
编程语言 时间:
2014-11-06 12:45:33
阅读次数:
338
ArrayList的插入和删除的操作代价很大,一旦你的程序运行非常缓慢时,你就有必要去关注一下arrayList可能就是罪魁祸首。最近看了《数据结构与算法分析:Java语言描述(第2版) 》中的第三章表、栈和队列结构部分:学习了一下ArrayList与LinkedList的实现方式。以下是我的一些看...
分类:
其他好文 时间:
2014-11-05 17:01:35
阅读次数:
196
从算法的实现向算法的设计转变,提供解决问题的思路1.贪心算法一种局部最优算法设计思路,思想是保证每一步选择在当前达到最优。一个很常见的贪心算法案例是零钱找取问题。调度问题:书上的调度问题比较简单,其目标是所有作业的平均持续时间(调度+运行)最短,无论是但处理器还是多处理器,最优解的方案总是按作业的长...
分类:
编程语言 时间:
2014-11-04 17:00:22
阅读次数:
372
基本介绍一个集合S,集合中一个元素a。a的等价类是S的一个子集,该子集包含所有与a有关系的元素。等价类形成是对S的一个划分且S中的每一个成员恰好出现在一个等价类中。这样,判断a与b是否有关系,只需要判断a与b是否在一个等价类中即可。对于集合S划分,取任意两个等价类,Si与Sj,如果Si∩Sj = ?...
分类:
编程语言 时间:
2014-11-03 23:47:51
阅读次数:
313
优先队列实现事件模拟:http://maozj.iteye.com/blog/676567d堆 左式堆 斜堆:http://blog.csdn.net/yangtrees/article/details/8252760二项队列:http://www.cnblogs.com/xing901022/ar...
分类:
编程语言 时间:
2014-10-31 15:34:39
阅读次数:
134
引论左堆的合并,插入,删除最小的时间复杂度为O(logN)。二项队列就是为了对这些结果进一步提高的一种数据结构。利用二项队列,这三种操作的最坏时间复杂度为O(logN),但是插入的平均时间复杂度为O(1)二项队列二项队列不是一棵树,它是一个森林,由一组堆序的树组成的深林,叫做二项队列。二项队列有几个...
分类:
编程语言 时间:
2014-10-31 15:20:12
阅读次数:
260
一、题目 编写支持双端队列的例程,插入与弹出操作均花费 O(1)时间二、解答 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的数据结构。 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 基本操作:在双端队列两端插入与删除。 ADT...
分类:
其他好文 时间:
2014-10-06 01:44:29
阅读次数:
341