算法
lianchaozhao
这个作者很懒,什么都没留下…
展开
-
十大排序算法 及时间复杂度对比
注意其中基数排序的k可以用10 表示。所以器平均时间复杂度O(n10) 、 最好的情况下 为O(n10),在最坏的情况下时间复杂度为 O(n*k) ,空间复杂度为 O(n+10)原创 2020-04-18 20:47:01 · 1079 阅读 · 0 评论 -
二叉树的遍历
1、二叉树的广度遍历2、二叉树的深度遍历二叉树的深度遍历,包括了前序遍历、中序遍历、后续遍历。其命名方式是根节点的遍历顺序,即:先序遍历:先遍历根节点(根节点->左子树->右子树),即先访问根节点再递归的访问左子树,然后递归的访问右子树。中序遍历:访问的中间位置为根位置,其主要顺序为(左子树->根节点->右子树),即我们先递归的使用中序遍历访问左子树,让后根节点,然...原创 2020-01-29 11:41:19 · 111 阅读 · 0 评论 -
工作常用算法
LRU算法原创 2020-01-06 19:15:18 · 448 阅读 · 0 评论 -
B树和B+树异同
B树B (Balanced)树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支,即多叉)平衡查找树。与之前介绍的红黑树很相似,但在降低磁盘I/0操作方面要更好一些。B树与红黑树最大的不同在于,B树的结点可以有许多子女,从几个到几千个。B+ 树B±tree:是应文件系统所需而产生的一种B-tree的变形树,他与B树的不同点为(1)所有的叶子结点中包...原创 2019-12-23 10:29:42 · 307 阅读 · 0 评论 -
散列表之布隆过滤器
散列表概念散列表又名(hash表)是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash)...原创 2019-12-22 18:05:52 · 228 阅读 · 0 评论 -
排序算法之计数排序
我们一般常用排序算法有很多种但最优的时间复杂度一般都是 nlgn (一般的通过比较而排序的算法基本最优时间复杂度nlgn)计数排序:一般试用类型为比较类型都是整数,且其一定的范围(在0到k 之间 且k和之间数组之间指针值上成一定关系),我们可以应用计数排序,其时间复杂度比比较排序nlgn 更快 一般时间复杂度为N其具体实现是:通过一个数组然后通过数组下表值(lp)为排序。轮巡一遍原数组,将...原创 2019-12-21 20:28:52 · 142 阅读 · 0 评论 -
最容易理解的堆排序
大数据算法种有一类题求解问题1、求解在n 个数据种前 k个最大数据或最小数据的(或出现次数最多或次数最小的 前k个数)解答:一般这类解法除了常用大数据 MR 思想外。如果内存比较大的化我们可以采用维护最大最小堆的方式堆排序的优势:一般堆的存储都采用数组的方式,然后通过数组指针的坐标方式记录堆的存储顺序(父节点和子几点的关系和位置)方式交换堆的父节点和子节点的维护堆的存储堆的存储空间1...原创 2019-12-20 15:12:58 · 182 阅读 · 0 评论 -
hashMap和ConcurrentHashMap 线程安全及底层数据存储分析
jdk 版本不同hashmap 实现方式不同jdk 1.7 中 HashMap 底层是基于 数组 + 链表 组成的 其中代码实现逻辑这是 HashMap 中比较核心的几个成员变量;看看分别是什么意思?初始化桶大小,因为底层是数组,所以这是数组默认的大小。桶最大值。默认的负载因子(0.75)table 真正存放数据的数组。Map 存放数量的大小。桶大小,可在初始化时显式指定。...原创 2019-12-17 21:01:55 · 188 阅读 · 0 评论 -
分布式中的一致性Hash
1、背景在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。2、为了能直观的理...原创 2019-08-08 19:44:36 · 479 阅读 · 0 评论