不吃_花椒的博客

发上等愿,结中等缘,享下等福。

什么是一致性Hash算法?

最近有小伙伴跑过来问什么是Hash一致性算法,说面试的时候被问到了,因为不了解,所以就没有回答上,问我有没有相应的学习资料推荐,当时上班,没时间回复,晚上回去了就忘了这件事,今天突然看到这个,加班为大家整理一下什么是Hash一致性算法,希望对大家有帮助!文末送书,长按抽奖助手小程序即可参与,祝君好...

2019-04-09 17:15:11

阅读数 25

评论数 0

排序算法(六)——希尔排序

基本思想 希尔排序是基于插入排序的,又叫缩小增量排序。 在插入排序中,标记符左边的元素是有序的,右边的是没有排过序的,这个算法取出标记符所指向的数据,存入一个临时变量,接着,在左边有序的数组中找到临时变量应该插入的位置,然后将插入位置之后的元素依次后移一位,最后插入临时变量中的数据。 试想,假如有...

2019-04-03 16:53:50

阅读数 20

评论数 0

排序算法(五)——快速排序

基本思想 快速排序也是基于分治算法得。步骤如下: (1)选择一个基准元素,通常选择第一个元素或者最后一个元素; (2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的元素值比基准值大; (3)此时基准元素在其排好序后的正确位置; (4)然后分别对...

2019-04-03 15:21:49

阅读数 34

评论数 0

排序算法(四)——归并排序与递归

基本思想 分析归并排序之前,我们先来了解一下分治算法。 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 分治算法的一般步骤: (1)分解,将要解决的问题划分成若干规模较小的同类问题; (2)求解,当子问...

2019-04-03 11:23:36

阅读数 12

评论数 0

排序算法(三)——插入排序及改进

插入排序 基本思想 在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数找到相应位置并插入,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 java实现 //插入排序 public void insertionSort(){ ...

2019-03-21 16:55:16

阅读数 25

评论数 0

排序算法(二)——选择排序及改进

选择排序 基本思想 冒泡排序中有一个缺点,比如,我们比较第一个数a1与第二个数a2的时候,只要a1比a2大就会交换位置,但是我们并不能确定a2是最小的元素,假如后面还有比它更小的,该元素还会与a2再次进行交换,而且这种交换有可能发生多次才能确定a2的最终位置。 选择排序可以避免这种耗费时间的交换操...

2019-03-21 14:13:49

阅读数 30

评论数 0

排序算法(一)——冒泡排序及改进

排序算法概述 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。 稳定性:一个排序算法是稳定的,就是当有两个相等记录的关键字R和S,且在原本的列表中R出...

2019-03-21 11:24:27

阅读数 85

评论数 0

数据结构之AVL树

1. 什么AVL树 AVL树由两位科学家在1962年发表的论文《An algorithm for the organization of information》当中提出,其命名来自于它的发明者G.M. Adelson-Velsky和E.M. Landis的名字缩写。 **AVL树是最先发明的自平...

2019-03-19 14:49:22

阅读数 43

评论数 0

数据结构之霍夫曼树

计算机里每个字符在没有压缩的文本文件中都由一个字节(如ASCII码)或两个字节(如Unicode码)表示。这些方案中,每个字符需要相同的位数 下表列出了字母对应的ASCII码 字母 十进制 二进制 A 65 ...

2019-03-18 14:48:32

阅读数 44

评论数 0

数据结构之二叉树

通过前面的学习,我们知道,有序数组可以利用二分查找法快速的查找特定的值,时间复杂度为O(log2N),但是插入数据时很慢,时间复杂度为O(N);链表的插入和删除速度都很快,时间复杂度为O(1),但是查找特定值很慢,时间复杂度为O(N)。 那么,有没有一种数据结构既能像有序数组那样快速的查找数据,又...

2019-03-15 16:45:26

阅读数 38

评论数 0

数据结构之链表

链表是一种插入和删除都比较快的数据结构,缺点是查找比较慢。除非需要频繁的通过下标来随机访问数据,否则在很多使用数组的地方都可以用链表代替 在链表中,每个数据项都包含在“链结点”中,一个链结点是某个类的对象。每个链结点对象中都包含一个对下一个链接点的引用,链表本身的对象中有一个字段指向第一个链结点的...

2019-03-14 18:40:00

阅读数 30

评论数 0

数据结构之队列

栈是“后进先出”(LIFO,Last InFirst Out)的数据结构,与之相反,队列是“先进先出”(FIFO,First InFirst Out)的数据结构 队列的作用就像售票口前的人们站成的一排一样:第一个进入队列的人将最先买到票,最后排队的人最后才能买到票 在计算机操作系统或网路中,有...

2019-03-14 11:26:34

阅读数 37

评论数 0

数据结构之栈

数组、链表、树等数据结构适用于存储数据库应用中的数据记录,它们常常用于记录那些现实世界的对象和活动的数据,便与数据的访问:插入、删除和查找特定数据项 而栈和队列更多的是作为程序员的工具来使用。他们主要作为构思算法的辅助工具,而不是完全的数据存储工具。这些数据结构的生命周期比那些数据库类型的结构要短...

2019-03-13 17:09:23

阅读数 57

评论数 0

数据结构之数组

数组是应用最广泛的一种数据结构,常常被植入到编程语言中,作为基本数据类型使用,因此,在一些教材中,数组并没有被当做一种数据结构单独拿出来讲解(其实数组就是一段连续的内存,即使在物理内存中不是连续的,在逻辑上肯定是连续的)。其实没必要在概念上做纠缠,数组可以当做学习数据结构的敲门砖,以此为基础,了解...

2019-03-13 16:30:51

阅读数 39

评论数 0

数据结构与算法概念解析

数据之间的相互关系称为逻辑结构。通常分为四类基本结构: 集合 结构中的数据元素除了同属于一种类型外,别无其它关系。 线性结构 结构中的数据元素之间存在一对一的关系。 树型结构 结构中的数据元素之间存在一对多的关系。 图状结构或网状结构 结构中的数据元素之间存在多对多的关系...

2019-03-13 14:47:18

阅读数 44

评论数 0

Linux中find命令用法大全

Linux 查找命令是Linux系统中最重要和最常用的命令之一。查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。查找可以在各种条件下使用,您可以通过权限,用户,组,文件类型,日期,大小等可能的条件查找文件。本文将分为五个部分,从基本到提前使用find命令。 第一部分:查找名...

2019-02-26 11:53:45

阅读数 27

评论数 0

RSA加解密用途简介及java示例

RSA加解密用途简介及java示例 在公司当前版本的中间件通信框架中,为了防止非授权第三方和到期客户端的连接,我们通过AES和RSA两种方式的加解密策略进行认证。对于非对称RSA加解密,因为其性能耗费较大,一般仅用于认证连接,不会用于每次报文本身的加解密(这一般使用AES(最主流的加密算法)/DE...

2019-02-15 16:10:59

阅读数 27

评论数 0

ElasticSearch【九】浅析search_after 及 from&size,scroll,search_after性能分析

一、"search_after"是什么? “search_after”是用于查询的dsl,可以起到类似"from & size"分页作用的结构化查询,代码展示如下: GET twitter/_sea...

2019-01-25 16:24:09

阅读数 35

评论数 0

ElasticSearch【八】浅析Scroll

【起因】 正常查某索引下全部数据的dsl举例如下: POST /fcar_city/city/_search?scroll=10m { "query": { "bool": { ...

2019-01-25 16:22:34

阅读数 159

评论数 0

ElasticSearch【七】“Result window is too large & 深度分页”的利弊权衡

如题,在使用elastic search的dsl查询过程中,遇到了如下问题: { "error": { "root_cause": [{ "type": "qu...

2019-01-25 16:19:30

阅读数 127

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭