
数据结构与算法
文章平均质量分 94
Liuwenhao866595
这个作者很懒,什么都没留下…
展开
-
位运算有关
计算一个整数中位为1的位数:[code="java"]public class BitCount { public static int bitCount(int x) { if(x == 0) { return 0; } if(x < 0) { x = -x; } int count = 1; while((...原创 2011-03-25 09:06:46 · 141 阅读 · 0 评论 -
计算n!末尾所包含0的个数
转自:http://blog.youkuaiyun.com/waitfor_/article/details/7213288 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。这里先给出其计算公式,后面给出推导过程。令f(x)表示正整数x末尾所含有的“...原创 2012-01-21 15:29:21 · 226 阅读 · 0 评论 -
rsync 核心算法的Java实现
rsync 算法场景:假设有两台计算机CA和CB,CA上有文件FA,CB上有文件FB,FA和FB是“相似的”。CA和CB通过低速通信链接连接,现在要把FA同步到FB上去,如何才能高效同步。 rsync 算法包含下面的步骤:1、CB把FB分割成固...2012-11-17 21:44:51 · 485 阅读 · 0 评论 -
ABA问题
今天在微博上看到讨论ABA的问题,不懂,google,记录下。 ABA问题:在进行CAS操作的时候,因为在更改V之前,CAS主要询问“V的值是否仍然为A”,所以在第一次读取V之后以及对V执行CAS操作之前,如果将值从A改为B,然后再改回A,会使基于CAS的算法混乱。在这种情况下,CAS操作会成功。这类问题称为ABA问题。1、对于CAS产生的这个ABA问题,通常的解决方案是采...2012-09-06 15:28:11 · 306 阅读 · 0 评论 -
非递归、固定量额外存储空间 遍历二叉树
原文发表于: http://coderbee.net/index.php/algorithm/20130618/231 题写出一个O(n)时间的非递归过程,输出给定的含n个节点的二叉树中每个结点的关键字,要求只能使用除树本身以外固定量的额外存储空间,而且在过程中不能修改该树,哪怕只是暂时的。 题目来自《算法导论》的一道习题。 树的遍历方式分类从树的深度分类树...2013-06-18 22:23:15 · 344 阅读 · 0 评论 -
向量旋转
本文先发布于:http://coderbee.net/index.php/algorithm/20130619/224 向量旋转题目均来自《编程珠玑》,代码实现是用Go语言。 题将一个n元一维向量向左旋转(循环移位)i个位置。例如,当n=8时且i=3时,向量abcdefgh旋转为defghabc。简单的代码使用一个n元的中间向量在n步内完成该工作。能否仅用数十...2013-06-19 22:47:03 · 845 阅读 · 0 评论 -
动态规划 笔记
动态规划 笔记http://coderbee.net/index.php/algorithm/20130801/343 一、引题在一个N行M列的二维数组vec,每个元素位置放置一定数量的苹果,从底部开始往顶部走,每一步只能按 正前方、正前方左45度(如果左边还有位置)、正前方右45度(如果右边还有位置) 三种方式前进,起点可以是底部的任意一个位置,终点也可以是顶部的任意一...2013-08-01 18:58:02 · 138 阅读 · 0 评论 -
散列/哈希
本文首先发表在: http://coderbee.net/index.php/algorithm/20130919/479 散列一般也叫哈希。散列表也叫哈希表。本位将介绍散列表的基本知识、一致性哈希、哈希碰撞攻击及Java里的哈希实现。 介绍散列表是普通数组概念的推广,在最坏情况下查找一个元素需要O(n),在一些合理假设下,查找一个元素的期望时间为O(1)。 ...原创 2013-09-20 09:47:53 · 277 阅读 · 0 评论