数据结构与算法
文章平均质量分 78
cs_zxm
这个作者很懒,什么都没留下…
展开
-
找出数组中出现次数超过一半的数
问题: 现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。 解析: 这个题目类似于:微软的寻找发帖水王,思想: 类似于擂台赛,设最多的数为X, 每次删除两个不同的数(不管是否为最多的数X), 则我们能保证剩下的数中X还是超过剩余总数的一半,一直循环这个过程,则最后一个肯定是X 简单代码: int FindMost(c转载 2015-03-22 15:41:55 · 371 阅读 · 0 评论 -
二叉树的非递归遍历
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三种遍历中,前序和中序遍历的非递归算法都很容易实现,非递归后序遍历实现起来相对来说要难一点。 一.前序遍历转载 2015-04-10 16:23:51 · 347 阅读 · 0 评论