Algorithm
iteye_14062
这个作者很懒,什么都没留下…
展开
-
Fibonacci heap
斐波那契堆的结构较二项堆更松散,关键思想在于尽量延迟对堆的维护。 A [b]Fibonacci heap[/b] is a collection of rooted trees that are min-heap ordered. 根节点不需要顺序,用一个H.min指向最小的 [img]http://dl.iteye.com/upload/picture/pic/90997/4301e1...2011-05-25 16:41:08 · 155 阅读 · 0 评论 -
Binomial Queue
前面堆排序已经描述了二叉堆的基本操作,插入(O(logn))、删除(O(logn))和查询最大最小值(O(1)),但是两个二叉堆合并时却很不方便,一个一个调用插入方法完成合并需要O(n)。 [b]Binomial Queue[/b](二项队列):一个链表数组,每个元素指向一棵二项树,数组元素按二项树大小顺序排列。 [b]Binomial Tree(二项树) 是什么 图解[/b] [i...2011-05-12 16:29:41 · 431 阅读 · 0 评论 -
红黑树
A [b]red-black tree[/b] is a binary search tree with one extra bit of storage per node: its color, which can be either RED or BLACK. 红黑树性质: 1. The root is black. 2. If a node is red, then both it...2011-05-09 15:33:41 · 92 阅读 · 0 评论 -
BST的插入和删除
[b]Binary Search Tree[/b] 由于经常的插入删除操作会变得越来越不平衡,导致运行效率低下,但删除操作还是蛮漂亮的。 本代码来自《算法导论》,也可以用递归做,但肯定没有迭代效率高。 [code="c"]typedef int ElementType; typedef struct TreeNode { ElementType key; struct Tre...2011-05-06 16:40:15 · 219 阅读 · 0 评论 -
Hash Table
散列用来以常数时间实现 Insert、Find 和 Delete 操作。 With [b]direct addressing[/b], an element with key k is stored in slot k.(相当于数组) With [b]hashing[/b], this element is stored in slot h(k); that is, we use a ha...2011-05-06 11:10:35 · 91 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
中缀表达式:a+b*c+(d*e+f)/g 这是人类擅长的表达式,可是计算机却很为难。 后缀表达式:abc*+de*f+g/+ 读到运算数就压栈,读到运算符弹出两个运算数计算,计算结果再压栈,反复... 计算机就很容易计算表达式了。 问题:中缀表达式如何转换成后缀表达式? [b]1. 读到运算数时,直接输出。 2. 读到“(”时,压栈。 3. 读到“+ - * /”时,弹出...2011-05-03 15:55:00 · 158 阅读 · 0 评论 -
最大子序列和
《算法导论》第三版讲分治时引用了一个很好的例子,股票的涨幅。 而其本质是与《数据结构与算法分析》的开篇一样的,最大子序列和问题。 问题描述:已知每天股票的价格,选择一个买入点和一个抛出点,使得获取利润最大。 问题转换:一个整数序列 A[N](可能有负),求 A[i] 加到 A[j] 的最大值(0 = left; i--) { leftBorderSum += A[i]; ...2011-04-25 16:19:02 · 97 阅读 · 0 评论 -
排序算法
排序算法不仅要考虑效率,还要注意一个易被忽略的因素:稳定性(stable)。 [b]Any comparison sort algorithm requires (nlogn) comparisons in the worst case.[/b](decision tree) [b]一、插入排序(Insertion Sort)[/b],《算法导论》里那张摸牌的图解释的很形象。稳定的,时...2011-04-20 10:59:15 · 219 阅读 · 0 评论 -
图论基础算法
[b]邻接表(adjacency lists)[/b]是表示图的标准方法。 如果是稠密图,可以使用[b]邻接矩阵(adjacency matrix)[/b]。 [b]BFS(Breadth First Search)[/b],广度优先搜索 [b]DFS(Depth First Search)[/b],深度优先搜索 [b]Topological sort[/b],拓扑排序 适用条件...2011-05-26 14:59:20 · 280 阅读 · 0 评论 -
Disjoint Set
[b]Disjoint Set[/b],不相交集,也叫并查集 Union/Find算法: Find:它返回包含给定元素的集合。 Union:合并两个集合。 用数组来模拟树。 初始化时,数组元素为0。正数的表示父亲是谁,如图: [img]http://dl.iteye.com/upload/picture/pic/90305/443e04d9-af35-385c-b4cd-3e2...2011-05-16 10:06:21 · 233 阅读 · 0 评论