代码改变世界

随笔分类 - [12]算法分析与设计

一致性哈希算法及其在分布式系统中的应用

2011-08-11 20:12 by T2噬菌体, 12672 阅读, 收藏, 编辑
摘要:本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。 阅读全文

程序设计中的计算复用(Computational Reuse)

2011-03-03 18:25 by T2噬菌体, 6715 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>本文简要论述了计算复用(Computational Reuse)的基本概念及作用,通过计算斐波那契数列和Strassen算法两个例子展示了计算复用,然后,本文论述了计算复用思想对非数值计算程序开发的启示。 阅读全文

对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)

2010-10-18 17:32 by T2噬菌体, 14633 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>前几天参加了一个公司的面试,其中被问到了一个题。面试官在纸上画了一个图形(具体图形见下文),问我能不能一笔画出这个图形,要求每条边必须只走一次,并且画的过程中笔不能离开纸。当时我没有试着去画 ,而是凭着自己图论方面的知识在几秒钟之内告诉面试官不可能做到,然后简单说了一下理由。面试结束后我翻阅了图论相关的资料,发现当时自己虽然给出了正确答案,但理由并不完全正确。昨天我花了几个小时仔细研究了一下相关的理论,总结了一下这类问题的类型和解法,写成此文,分享给大家。 阅读全文

哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

2010-10-01 00:09 by T2噬菌体, 51918 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>今天看到吉日嘎拉的一篇关于管理软件中信息加密和安全的文章,感觉非常有实际意义。文中作者从实践经验出发,讨论了信息管理软件中如何通过哈希和加密进行数据保护。但是从文章评论中也可以看出很多朋友对这个方面一些基本概念比较模糊,这样就容易“照葫芦画瓢”,不能根据自身具体情况灵活选择和使用各种哈希和加密方式。本文不对哈希和加密做过于深入的讨论,而是对哈希和加密的基本概念和原理进行阐述、比较,并结合具体实践说明如何选择哈希和加密算法、如何提高安全性等问题,使朋友们做到“知其然,知其所以然”,这样就能通过分析具体情况,灵活运用哈希和加密保护数据。 阅读全文

解析Monte-Carlo算法(基本原理,理论基础,应用实践)

2009-05-29 00:17 by T2噬菌体, 24411 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>Monte-Carlo算法是一个非常有用的算法,在许多实际问题中,都有用武之地。目前,这个算法已经在金融学、经济学、工程学、物理学、计算科学及计算机科学等多个领域广泛应用。而且这个算法本身并不复杂,只要掌握概率论及数理统计的基本知识,就可以学会并加以应用。由于这种算法与传统的确定性算法在解决问题的思路方面截然不同,作为计算机科学与技术相关人员以及程序员,掌握此算法,可以开阔思维,为解决问题增加一条新的思路。基于以上原因,我有了写这篇文章的打算。这篇文章将首先从直观的角度,介绍Monte-Carlo算法,然后介绍算法基本原理及数理基础,最后将会和大家分享几个基于Monte-Carlo方法的有意思的实验。 阅读全文

算法时间复杂度分析基础

2008-11-14 13:04 by T2噬菌体, 21549 阅读, 收藏, 编辑
摘要:<img src="http://pic002.cnblogs.com/img/leoo2sk/200905/2009053017194921.gif" class="desc_img"/>本文论述了在算法分析领域一个重要问题——时间复杂度分析的基础内容。本文将首先明确时间复杂度的意义,而后以形式化方式论述其在数学上的定义及相关推导。从而帮助大家从本质上认清这个概念。 阅读全文