![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 84
酱油p
这个作者很懒,什么都没留下…
展开
-
【算法】完全散列——理解与代码
散列表的基本概念假设某应用要用到一个动态集合,其中每个元素都有一个属于[0..p]的关键字,此处p是一个不太大的数,且没有两个元素具有相同的关键字,则可以用一个数组[p+1]存储该动态集合,并且使用关键字作为数组下标进行直接寻址。这一直接寻址思想在前面的非比较排序中就有所应用。然而,当p很大并且实际要存储的动态集合大小n散列表(Hashtable),使用具有m个槽位的数组来存储大小为n的动原创 2014-05-03 21:42:34 · 872 阅读 · 0 评论 -
【算法】非递归不用栈的二叉树遍历算法伪代码
树的遍历,尤其是二叉树的遍历算法是常见并且非常重要的,关于这个问题的讨论网上已经有很多,并且很多教材也做了分析,从递归实现,到非递归用栈来实现,以及非递 归不用栈来实现,最后一种被认为是繁琐的,特别具体实现时要考虑不少细节,下面是 我整理的比较容易写出来且容易记忆的一种写法,算是抛砖引玉吧。目录 [隐藏]in-order(中序)pre-order(前序)post-order(后转载 2014-05-07 19:11:42 · 685 阅读 · 0 评论 -
【算法】skiplist——调表,一种随机化的类平衡二叉树
参考文章:http://dsqiu.iteye.com/blog/1705530参考文章:http://www.cnblogs.com/xuqiang/archive/2011/05/22/2053516.html转载 2014-05-18 19:22:32 · 847 阅读 · 0 评论 -
【算法】如何用栈实现递归与非递归的转换
如何用栈实现递归与非递归的转换一.为什么要学习递归与非递归的转换的实现方法? 1)并不是每一门语言都支持递归的. 2)有助于理解递归的本质. 3)有助于理解栈,树等数据结构.二.递归与非递归转换的原理. 递归与非递归的转换基于以下的原理:所有的递归程序都可以用树结构表示出来.需要说明的是,这个"原理"并没有经过严格的数学证明,只是我的一个猜想,不转载 2014-05-05 13:20:23 · 708 阅读 · 0 评论 -
【算法】桶排序——二层数据结构的思想
从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。 桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1..转载 2014-04-28 18:58:32 · 394 阅读 · 0 评论 -
【算法】基数排序——经典扑克排序,二维数组按列排序的出处
《桶排序 》中我们能够看到,数据值的范围越大,可能需要桶的个数也就越多,空间代价也就越高。对于上亿单位的关键字,桶排序是很不实用的。基数排序是对桶排序的一种改进,这种改进是让“桶排序”适合于更大的元素值集合的情况,而不是提高性能。 多关键字排序问题(类似于字典序): 我们先看看扑克牌的例子。一张牌有两个关键字组成:花色(桃 (1) 首先按照花色对所有转载 2014-04-28 19:11:22 · 767 阅读 · 0 评论