
算法
术学家
这个作者很懒,什么都没留下…
展开
-
DFS简单实现
memset的用法值得注意:(1)定义式二维数组可以直接memset初始化;(2)new动态来的二维只能通过循环来初始化;(3)要加上头文件cstring;原创 2014-11-15 10:00:43 · 373 阅读 · 0 评论 -
Amortize analysis
The accounting method overcharges some operations early in the sequence. Later in the sequence, the credit pays for operations that are charged less than they actually cost.The potential method, which原创 2017-03-18 07:32:00 · 601 阅读 · 0 评论 -
看毛片(KMP)算法简析
看毛片算法又称KMP算法。该算法之所以得名无外乎如下原因。每当涉及该算法都甚新鲜,极想把玩一番,经过一番琢磨,终于悟透其本质。遂将其束之高阁,数月之后,再相邂逅,新鲜如初,又是一番把玩、醒悟、遗忘,如此循环以至无穷。足见,该算法与看毛片的道理一脉相承。初看新鲜刺激,观摩研究,醒悟不过如此而已。遂撇下而顾其它,数月之后,复习之,依然新鲜激动如故。以致数年。KMP算法核心在于求匹配失败原创 2015-01-18 23:46:07 · 44455 阅读 · 0 评论 -
前序和中序构造树的设计分析
题目分析:--------------------------------------------preOrderroot - left - rightinOrder left - root - right1, pre 的第一个把inorder划分成两个序列 inLeft , inRight2, 用inorder的两个部分去划分pre的,再等到pre的两原创 2014-12-10 20:42:14 · 319 阅读 · 0 评论 -
二叉树后序遍历非递归
右子树的处理:()原创 2014-11-17 16:45:58 · 529 阅读 · 2 评论 -
后序非递归的简洁实现
class Solution { public: vector postorderTraversal(TreeNode root){ vector ret; map visited; if (root == NULL) { return ret; } TreeNode *cur = root; stack st; st.push(cur);转载 2014-11-17 18:16:00 · 396 阅读 · 0 评论 -
Dijstra的greedy简单实现
暂时不用数据结构,先理解算法的本意。原创 2014-11-15 15:11:06 · 388 阅读 · 0 评论 -
gray code
class Solution {public: vector grayCode(int n) { vector vec; for(int i=0 ; i<(1<<n); ++i) { int t = i^(i>>1); vec.push_back(t);原创 2014-11-16 19:17:07 · 322 阅读 · 0 评论 -
BFS简单实现
有队列的概念就行。#include #include #include using namespace std;const int maxn=10000;int book[maxn];int g[maxn][maxn];int n,m,sum;void bfs(int cur){ int que[maxn];int head,tail; head=tail=cur;原创 2014-11-15 10:19:05 · 435 阅读 · 0 评论 -
学习fibnacci堆的意义是什么
学习平摊分析(amortize analysis)的思想。 fib堆是一个非常复杂的数据结构,实际应用中没有应该没有普通的二叉小根堆更实用。但是里面涉及到了算法设计中一个重要的思想,平摊分析,这是一种洞察力。可以辅助设计整体性能更好的算法。删除最小的根,这个操作的复杂度是O(logn), 虽然和普通堆是一样的,但是这里做了很多工作。例如调整堆的高度,让有相同children的树合并在一起。这样做得原创 2017-03-19 06:14:07 · 576 阅读 · 0 评论