![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法分析
像我这样迷茫的人
这个作者很懒,什么都没留下…
展开
-
关于哈希表
什么是哈希表哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。使用哈希查找有两个步骤:使用哈希函数将被查...原创 2018-12-19 14:51:59 · 159 阅读 · 0 评论 -
数据结构和算法系列 - 一致性hash算法
1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache ;hash(object)%N一切都运行正常,再考虑如下的两种情况;1 一个 cache 服务器 m down 掉了(在实际应用中...原创 2018-12-20 13:34:24 · 107 阅读 · 0 评论 -
算法导论 1 算法、插入排序、循环不变式,算法分析
算法所谓 算法 (algorithm)就是定义良好的计算过程,它取一个或一组值作为 输入 ,并产生出一个或一组值作为 输出 。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结果。我们还可以将算法看作是一种工具,用来解决一个具有良好规范说明的 计算问题 。例如,假设要将一列数按非降顺序进行排列,下面是有关该排序问题的形式化定义:输入 :由 n 个数构成的一个序列<a1, ...原创 2019-01-01 12:35:04 · 459 阅读 · 0 评论 -
堆排序与优先队列
1. 预备知识 (1) 基本概念 如图,(二叉)堆是一个数组,它可以被看成一个近似的完全二叉树。树中的每一个结点对应数组中的一个元素。除了最底层外,该树是完全充满的,而且从左向右填充。堆的数组A包括两个属性:A.length给出了数组的长度;A.heap-size表示有多少个堆元素保存在该数组中(因为A中可能只有部分位置存放的是堆的有效元素)。 由于堆的...原创 2019-01-30 16:41:58 · 207 阅读 · 0 评论