
算法分析与设计
coreyhsu2020
公众号:锦秋聊学习
展开
-
精妙的Morris二叉树遍历算法
今天介绍一种精妙的无堆栈,O(1)空间的二叉树遍历算法:Morris遍历,它是Morris发明的。大家都很熟悉用递归和堆栈来实现二叉树的遍历,比如,前序遍历,中序遍历,后序遍历。但Morris 遍历,使用无堆栈,O(1) 空间进行二叉树遍历。它的原理很简单,利用所有叶子结点的右指针,指向其后继结点,组成一个环,在第二次遍历到这个结点时,由于其左子树已经遍历完了,则访问该结点。转载 2014-03-05 18:31:21 · 1072 阅读 · 0 评论 -
HeapAlloc内部算法
大家都知道在VC中使用new操作符时(如果没有重载的话),其内部实际上调用了标准的malloc,而根据工程设置中选择的运行库的不同(是否多线程,是否调试,是否Dll等)调用了不同的malloc版本,多线程版malloc内部使用了Win32的关键区,而调试版会额外多申请一些内存用来保存调试信息,这些直接看VC附带的crt源码就可以看到。所有版本的malloc的共同点是最后都调用了Win32的API函转载 2014-03-05 18:46:00 · 1929 阅读 · 0 评论 -
每日一练--一个数组实现三个栈
参考地址:http://article.yeeyan.org/view/9225/174245http://blog.youkuaiyun.com/wenqian1991/article/details/17662877http://blog.chinaunix.net/uid-28852942-id-3995297.html转载 2014-03-28 15:41:00 · 678 阅读 · 0 评论 -
转:经典算法(很详细的说)
在微博上突然看到一篇贴子:【#SAE技术分享#】《经典排序算法集锦》大多数排序算法都给出了每一步的状态,以方便初学者更容易理解,通俗易懂,部分难以理解的排序算法则给出了大量的图示,也算是一个特色吧~http://t.cn/SySUjx附了一张图:果然非常有用,因此,我也就转载了一下。。。原文地址我就不贴了,不过我暂时先将它的目录贴出来吧经典排序算法 - 快速排序Quic转载 2014-05-20 09:17:08 · 666 阅读 · 0 评论 -
狐狸与鸭子的问题(文章转载,具体公式的分析原创)
话说,一个圆形池塘,鸭子在池塘里,狐狸在岸边。鸭子只有游到岸边才能飞走。而狐狸想吃鸭子。但是狐狸又不会游泳,只能在岸上跑。狐狸在岸上奔跑的速度是鸭子在水里游的速度的4倍,问鸭子怎样才能飞走而不被狐狸吃掉。假设狐狸足够聪明。一个可行的想法是,鸭子在池塘里面游小圈,而狐狸在面跑大圈,但是被鸭子越落越远,之后当鸭子和狐狸处于最远距离时,鸭子径直游向岸边飞走,而狐狸要抓到鸭子得跑半圈,但是跑到鸭子原创 2014-09-05 09:49:36 · 2646 阅读 · 0 评论