Algorithm
文章平均质量分 84
小文兄弟
这个作者很懒,什么都没留下…
展开
-
用户空间使用Linux 数据结构系列导读篇
我们知道许多复杂数据结构,都是由一些简单数据对象组成。这些简单的对象可以被增加至该结构,也可以从中删除。实现复杂数据结构的比较好的方法是使用抽象数据类型。抽象数据类型的主要思想是把一个数据结构的实现完全封装起来,并且只提供一套健壮的接口来操纵它。这样做的好处是做到了干净的隔离。实现数据结构时完全不必了解谁来使用它,使用者也不必知道数据结构的内部实现。双方都只要基于接口来实现代码。另一方面,原创 2011-10-25 17:01:32 · 1165 阅读 · 0 评论 -
用户空间使用Linux数据结构系列之红黑树(1)
用户空间使用Linux数据结构系列之红黑树 本文通过对Linux内核中红黑树的源码分析,通过大量图示描述红黑树的原理,最后通过移植改造Linux内核红黑树代码,使用户空间也能使用Linux红黑树.本着从群众中来,回到群众中去的原则,本文很多内容都是参考网上资料,但本身不影响大家阅读,因为我们的目的很明确,就是掌握原理,并在实践中应用。 红黑树由来:原创 2011-10-26 09:09:27 · 4484 阅读 · 0 评论 -
(C程序) 递归算法详细分析
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。 这里有转载 2011-10-26 14:49:08 · 965 阅读 · 0 评论 -
螺旋队列算法分析
螺旋队列算法分析引用:http://blog.csdn.net/yhmhappy2006/article/details/2934435螺旋队列的样子如下图: 两大规律:1。螺旋规律(红线)2。奇数平方规律(紫线) 问题描述: 设1的坐标是(0,0),的方向向右为正,y方向向下为正,例如,7的坐标为(-1,-1),2的坐标为(0,转载 2011-10-26 09:20:03 · 488 阅读 · 0 评论 -
如何判断两个矩形相交
引用:http://www.cnblogs.com/0001/archive/2010/05/04/1726905.html假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形 rect1{(minx1, miny1)(maxx1, maxy1)} rect2{(minx2, miny2)(maxx2, maxy2)}转载 2011-10-26 09:30:52 · 1379 阅读 · 0 评论 -
用户空间使用Linux数据结构之红黑树(2)
1.5 RB树的操作红黑树的最主要特征,在于其颜色满足特定的性质。普通的节点添加,极有可能破坏红黑树的性质,所以在添加红黑树节点时,需要将整个红黑树的颜色进行调整。在理解插入、删除操作之前要先理解两个函数,即红黑树的左旋和右旋。左旋和右旋都是为了保证平衡二叉树的性质不变,即是通过左旋和右旋来保证红黑二叉树的第五条性质满足。红黑二叉树的添加跟普通的二叉树的添加类似。不过在添加节点后需要对原创 2011-10-26 09:14:46 · 1662 阅读 · 0 评论