03 2013 档案

摘要:原文:http://www.cppblog.com/goodwin/archive/2011/08/08/152797.html理解红黑树树型结构一直是一种很重要的数据结构, 我们知道二叉查找树BST提供了一种快速查找, 插入的数据结构. 相比散列表来说BST占用空间更小,对于数据量较大和空间要求较高的场合, BST就显得大有用处了.BST的大部分操作平均运行时间为O(logN), 但是如果树是含N个结点的线性链,则最坏情况运行时间会变为O(N). 为了避免出现最坏情况我们给它增加一些平衡条件, 使它的高度最多为2log(N+1), 最坏情况下运行是间花费也接近O(logN), 这就是我下面要 阅读全文
posted @ 2013-03-31 20:52 dancingrain 阅读(364) 评论(1) 推荐(0)
摘要:参考书籍:《Effective C++ 》《C++ Primer》《C++ 编程思想》上下册算来已经好久没有写博客了,周末抽点时间记录下最近学习的一个小问题吧。一直在使用C++写个小实验,以前没有写过特别大的工程,也很少会考虑到使用和不使用#define这个宏的好处和有点,最多也就是知道它是在预处理时期“盲目替换”代码的,因此不会牵涉到函数调用也就更不会有函数调用带来的堆栈开销。今天稍微详细了解了一下,所以几记录下来:首先,简单罗列一下#define的优点和好处:#define不分配内存,它是预编译命令,编译之前进行宏替换;使用带参数的#define可以完成类似于函数调用的功能,而不用付出函数 阅读全文
posted @ 2013-03-31 17:27 dancingrain 阅读(239) 评论(0) 推荐(0)
摘要:向量(Vector)在几乎所有的几何问题中,向量(有时也称矢量)是一个基本点。向量的定义包含方向和一个数(长度)。在二维空间中,一个向量可以用一对x和y来表示。例如由点(1,3)到(5,1的向量可以用(4,-2)来表示。这里大家要特别注意,我这样说并不代表向量定义了起点和终点。向量仅仅定义方向和长度。向量加法向量也支持各种数学运算。最简单的就是加法。我们可以对两个向量相加,得到的仍然是一个向量。我们有: V1(x1, y1)+V2(x2, y2)=V3(x1+x2, y1+y2)下图表示了四个向量相加。注意就像普通的加法一样,相加的次序对结果没有影响(满足交换律),减法也是一样的。点乘(Dot 阅读全文
posted @ 2013-03-07 16:56 dancingrain 阅读(962) 评论(0) 推荐(0)