
数据结构与算法
架构师之路
太原科技大学
展开
-
进制转换
8421码进制转换方式:1:二转八:三位一组(421)不足三位前补0,拆分后二进制为1的相加,最后每组值相连。 例:1101110由后向前拆分:110=6,101=5,001=1,得出的八进制为1562:二转十六:四位一组(8421)不足四位前补0,拆分后二进制为1的相加后,用十六进制表式,最后每组值相连。 例:1101110由后向前拆分:1110=原创 2013-03-07 10:59:32 · 4609 阅读 · 0 评论 -
10种排序算法总结
排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标准: (1)执行时间 (2)存储空间 (3)编程工作 对于数据量较小的情形,(1)(2)差别不大,主要考虑(3);而对于数据量大的,(1)为首要。 主要排序法有: 一、冒泡(Bubble)排序——相邻交换 二、选择排序——每次最小/大排在相应的位置 三原创 2013-03-15 13:31:36 · 1321 阅读 · 2 评论 -
一致性哈希算法
一致性 hash 算法( consistent hashing )张亮consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N原创 2013-04-07 16:11:35 · 1185 阅读 · 1 评论 -
UML图继承、实现、依赖、关联、聚合、组合的联系与区别
继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现指的是一个class类实现interface接口(原创 2013-05-16 16:35:16 · 1224 阅读 · 0 评论 -
密码算法
密码算法编辑密码算法是用于加密和解密的数学函数,密码算法是密码协议的基础。现行的密码算法主要包括序列密码、分组密码、公钥密码、散列函数等,用于保证信息的安全,提供鉴别、完整性、抗抵赖等服务。假设我们想通过网络发送消息P(P通常是明文数据包),使用密码算法隐藏P的内容可将P转化成密文,这个转化过程就叫做加密。与明文P相对应的密文C的得到依靠一个附加的参数K,称为密转载 2013-11-18 18:00:23 · 1904 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树、B*转载 2014-10-27 17:42:52 · 757 阅读 · 0 评论 -
二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)的比较
我们这个专题介绍的动态查找树主要有: 二叉查找树(BST),平衡二叉查找树(AVL),红黑树(RBT),B~/B+树(B-tree)。这四种树都具备下面几个优势:(1) 都是动态结构。在删除,插入操作的时候,都不需要彻底重建原始的索引树。最多就是执行一定量的旋转,变色操作来有限的改变树的形态。而这些操作所付出的代价都远远小于重建一棵树。这一优势在《查找结构专题(1):静态查找结构概论 》中转载 2015-04-15 11:42:08 · 3769 阅读 · 0 评论