
算法
文章平均质量分 79
贤云(xianyun)
爱学,不经历地狱般的磨练,怎么享受天堂的幸福,没有流过血的手指,怎么弹出世间绝唱
展开
-
10000000个不同的整型数求前100大数的算法
最快的做法时间复杂度就是O(NlogK) 其中N是你的所有数据的大小,K是你想取最大的多少个。 具体说就是循环所有的数据N,然后往一个PriorityQueue里面放(如果你用的是Java的话),这个Queue每次插入会自动排序,所以你需要做的就是当PriorityQueue的大小大于100的时候,每次看你下面循环的元素是否比这个PriorityQueue的第一个元素大,如果是的话,就抛弃第一...原创 2014-08-06 14:43:28 · 261 阅读 · 0 评论 -
准确计算某个时间点距现在的时间差的代码 如"几分钟之前"
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Test { public static String dateDiff(String startTime) throws ParseException { St...原创 2015-04-16 15:19:46 · 308 阅读 · 0 评论 -
Twitter的分布式自增ID算法snowflake
各种主键优缺点对比1.数据库自增主键优点:简单;唯一;递增;增幅固定缺点:写性能决定每秒生成数量上限,扩展差;分布式数据库,主节点挂掉,备节点上时可能有问题(主节点写入成功,日志未同步到备节点,导致id重复)备注:可有一个写库变成多个库同时写,如1、2、3三个库同时写,初始id分别为1、2、3,自增幅度都为3。这种方式可保证id不重复。但导致id不是绝对递增,而是整体趋势上递增...原创 2018-02-02 14:29:16 · 125 阅读 · 0 评论