摘要: 应用算法的实际情况——简单就是美应用算法的实际情况——简单就是美实际上,高级算法未必是最优解,古典算法有时也不错。进一步说,与知名算法相比,简单算法更好的情况也不罕见。Hatena Bookmark的Firefox扩展的搜索功能的尝试介绍一个Hatena中的实际例子。HatenaBookmark中有Firefox扩展这个工具,通过它可以将Hatena Bookmark与浏览器集成,十分方便。该扩展可以针对用户以前保存过的书签数据进行增量(incremental)搜索(如图7.1所示)。我们团队讨论了该搜索功能的实现方法,最后结果是,由于增量搜索中搜索动作发生频率很高,而且又是在客户端计算,所以 阅读全文
posted @ 2011-09-01 16:43 博文视点(北京)官方博客 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 算法评测算法评测——复杂度记法刚才说过,线性查找的计算量为O(n),二分查找的复杂度为O(log n)。大多情况下,算法的复杂度可以这样定量评测。算法评测一般使用复杂度记法(Order记法)。复杂度记法表示的含义是,当算法的输入大小为n时,大致需要这么多的计算量。花费时间与n的大小无关,能在固定时间内完成的处理,其复杂度为O(1)。例如从散列中查找数据,虽然要计算散列函数,但散列函数计算不依赖于n,所以复杂度为O(1)。而散列搜索中,给定键的值(几乎)是唯一的,因此通过键搜索值的处理也是O(1)(也依赖于具体实现)。因此,散列搜索整体复杂度为O(1)[1]。如前所见,线性查找要从开头开始查找, 阅读全文
posted @ 2011-09-01 16:07 博文视点(北京)官方博客 阅读(119) 评论(0) 推荐(0) 编辑