算法
小林2
这个作者很懒,什么都没留下…
展开
-
稳定婚姻问题和Gale-Shapley算法
什么是算法?每当有人问作者这样的问题时,他总会引用这个例子:假如你是一个媒人,有若干个单身男子登门求助,还有同样多的单身女子也前来征婚。如果你已经知道这些女孩儿在每个男孩儿心目中的排名,以及男孩儿们在每个女孩儿心中的排名,你应该怎样为他们牵线配对呢? 最好的配对方案当然是,每个人的另一半正好都是自己的“第一选择”。这虽然很完美,但绝大多数情况下都不可能实现。比方说,男1号最喜欢的是女1号,而女1转载 2012-07-12 19:22:14 · 2265 阅读 · 0 评论 -
社交网络:数据科学家眼中的金矿
随着Facebook的上市,社交网络再次成为人们关注的焦点。与传统的论坛、博客相比,社交网络是虚拟世界与现实世界的桥梁,在互联网上将现实生活中人与人之间的关系建立起来。从社交网络的分类来看,Facebook、Twitter、LinkedIn分别代表三种不同的社交网络。Facebook是基于朋友之间强关系的社交网络,有助于朋友之间关系的维系和改善;Twitter是基于单向关注的弱关系的社交网络,这样转载 2012-07-12 19:31:53 · 1974 阅读 · 0 评论 -
缓存的分代
Java的垃圾收集算法是分代的,因为根据2/8原则,80%的Java对象都是速生速灭的,因此将Java Heap划分为new和old,对两个区域采用不同的垃圾回收算法,在new代存活下来的对象转移到old区,这样一来大大提高了Java GC的效率。 类似分代的思想在很多地方可以用到,分代的本质是根据对象生命周期的不同做区别处理,而不是采取一刀切的方式来提高系统的处理效率。推而广之,比如缓转载 2012-07-14 13:04:44 · 815 阅读 · 0 评论 -
尾递归与Continuation
递归与尾递归 关于递归操作,相信大家都已经不陌生。简单地说,一个函数直接或间接地调用自身,是为直接或间接递归。例如,我们可以使用递归来计算一个单向链表的长度: public class Node { public Node(int value, Node next) { this.Value = value; this.Next = next转载 2012-07-16 13:19:56 · 287 阅读 · 0 评论 -
求无序数组的中位数
中位数即是排过序后的处于数组最中间的元素。 不考虑数组长度为偶数的情况。设集合元素个数为n。 简单的想了下: 思路1) 把无序数组排好序,取出中间的元素 时间复杂度 采用普通的比较排序法 O(N*logN) 如果采用非比较的计数排序等方法, 时间复杂度 O(N), 空间复杂度也是O(N). 思路2) 2.1)转载 2012-09-24 08:56:39 · 1459 阅读 · 0 评论