数据结构和算法
文章平均质量分 93
dbdoing
一名在路上的程序员
展开
-
听声音破解电话号码
2012年9月的时候,一个南京的大学生从电视台播放的一段记者采访360总裁周鸿祎的视频中破解了周鸿祎的手机号码,一时间被网络热炒。后来,又听说某人买车的时候使用电话银行付款,结果被人录下声音,破解了银行卡号和密码,导致存款被盗。最近居委会在小区里散发传单,提醒一种新的诈骗方式:电话听音破密码诈骗。各种网络和媒体对这些事情炒作的很热闹,但是趋于两种极端,要么将其说的出神入化,要么将其贬的一钱不值,唯转载 2013-12-10 12:49:37 · 5719 阅读 · 0 评论 -
一些经典排序算法分析
前言:这一篇文章中我们将讨论数组排序的问题,对于数据量比较大的,不能在内存中完成排序的,必须在磁盘上完成排序类型叫作外部排序,本篇将不讨论。对于内部排序的一些相关知识:存在几种容易的算法以排序,如插入排序。有一种算法叫做谢尔排序(ShellSort),它编程非常简单,以运行,并在实践中很有效。还有一些稍微复杂的的排序算法。任何通用的排序算法均需要次比转载 2013-12-04 09:50:16 · 1244 阅读 · 0 评论 -
面试10大算法汇总
英文版的“面试10大算法汇总”日最高访问量已高达4,318次。这说明总结程序员面试算法有实际意义,比读算法书更有效。下面是中文版的10大常见算法汇总+有代表性的题目汇总。这些概念是专门为面试准备的,因为日常编程中我们很少会自己去写一个链表或者做一个图,也不会经常使用没有效率的递归。以下用Java角度解释面试常见的算法和数据结构:字符串,链表,树,图,排序,递归 vs. 迭代,动态规划,位操转载 2013-12-18 12:31:57 · 950 阅读 · 0 评论 -
快速排序详细分析--单向扫描和双向扫描
快速排序详细分析by JOKER on 2009/08/27快速排序详细分析注:REF[n]为参考资料,列于文章结尾。看了编程珠玑Programming Perls第11章关于快速排序的讨论,发现自己长年用库函数,已经忘了快排怎么写。于是整理下思路和资料,把至今所了解的快排的方方面面记录与此。纲要算法描述时间复杂度分析具体实现细节划分选取枢纽转载 2014-07-01 16:00:13 · 4808 阅读 · 1 评论 -
图论中的最小生成树算法
所谓最小生成树,就是在一个具有N个顶点的带权连通图G中,如果存在某个子图G',其包含了图G中的所有顶点和一部分边,且不形成回路,并且子图G'的各边权值之和最小,则称G'为图G的最小生成树。 由定义我们可得知最小生成树的三个性质: • 最小生成树不能有回路。 • 最小生成树可能是一个,也可能是多个。 • 最小生成树边的个数等于顶点的个数减一。转载 2014-12-19 09:12:03 · 1692 阅读 · 0 评论 -
清空链表跟销毁链表的区别
链表本身是一个数据结构。销毁:是先销毁了链表的头,然后接着一个一个的把后面的销毁了,这样这个链表就不能再使用了,即把包括头的所有节点全部释放。清空:是先保留了链表的头,然后把头后面的所有的都销毁,最后把头里指向下一个的指针设为空,这样就相当与清空了,但这个链表还在,还可以继续使用;即保留了头,后面的全部释放。清空是链表的头还在,可以继续插入节点;销毁就是链表没了,整个链表(包括头)的空转载 2014-12-04 11:18:03 · 24740 阅读 · 5 评论 -
一致性哈希算法原理及其在分布式系统中的应用
本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先本文会描述一个在日常开发中经常会遇到的问题场景,借此介绍一致性哈希算法以及这个算法如何解决此问题;接下来会对这个算法进行相对详细的描述,并讨论一些如虚拟节点等与此算法应用相关的话题。分布式缓存问题假设我们有一个网站,最近发现随着流量增加,服务器压力越来越大,之前直接读写数转载 2015-06-09 08:47:17 · 6291 阅读 · 2 评论 -
一致性hash算法详解
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1转载 2015-06-08 22:32:43 · 1011 阅读 · 0 评论