算法
文章平均质量分 78
西风剑士
这个作者很懒,什么都没留下…
展开
-
二维数组螺旋遍历
二维数组螺旋遍历如下图所示,以A点为中心点,由近及远的遍历A周围的格子。比如要找A点周围某个范围内的数据,并且是按距离从近到远找出一定量数据,就是可以使用数组螺旋遍历的方法,找出A点附近满足要求的数据。下面是二维数组螺旋遍历的算法:1、文件ArraySearchGenerator.h/* 以某个点为中心螺旋遍历二维数组,相对应平面就是从近到远搜索 */class CArrayS原创 2013-03-11 18:12:45 · 3421 阅读 · 0 评论 -
hash算法学习笔记
hash表作为一种快速查找的数据结构,在希望提高程序性能的场所使用非常广泛,理论上希望它提供的查找复杂度是O(1)。但是如果遇到hash冲突的情况,那么hash表的查找就会慢下来。解决hash冲突的方式包括开放定址、共享池、链表等。显然hash表的性能依赖于hash表中key的hash算法的好坏,一个好的hash算法应该尽可能使得hash(key)各不相同,从而使得hash表的查找性能维持在O(1原创 2013-04-11 16:31:49 · 2790 阅读 · 1 评论 -
跳表Skiplist学习笔记
链表由于数据在内存中的存储是不连续的,因此无法进行随机查找。数组可以提供随机查找,但是往往需要预先定义数组的大小。数组的动态扩张比较麻烦,特别是对于存放在共享内存中的数组。 跳表是一个特殊的有序链表,插入数据的时候,可以方便的分配一个节点,然后将其插入到链表中。它可以提供期望为log(n)的查找效率,插入和删除的时间复杂度期望也是log(n)。跳表特点:1、跳表是一个有序链表原创 2013-04-22 16:54:42 · 1028 阅读 · 0 评论