随笔分类 -  算法

摘要:B树是一种多路自平衡搜索树,它类似普通的二叉树,但是B书允许每个节点有更多的子节点。B树示意图如下: Paste_Image.png B树的特点: (1)所有键值分布在整个树中 (2)任何关键字出现且只出现在一个节点中 (3)搜索有可能在非叶子节点结束 (4)在关键字全集内做一次查找,性能逼近二分查 阅读全文
posted @ 2020-09-22 14:24 甜菜波波 阅读(750) 评论(0) 推荐(0) 编辑
摘要:本篇作用于各种树之间的区别,非算法详细介绍,只是给我们这种非科班出身的一种大概的印象,现在网上更多是讲各种树的怎么实现的细节问题,本篇不涉及那么高深,如果详细了解可以查阅他人的资料,很多大神已经说的很多了 二叉树效果 这个是我们想象中的本应该的树的数据结构。 可是他存在一种极端的情况 他的查询效率就 阅读全文
posted @ 2020-09-22 14:16 甜菜波波 阅读(5068) 评论(0) 推荐(1) 编辑
摘要:高并发系统下, 有三把利器 缓存 降级 限流. 缓存: 将常用数据缓存起来, 减少数据库或者磁盘IO 降级: 保护核心系统, 降低非核心业务请求响应 限流: 在某一个时间窗口内对请求进行限速, 保护系统 本文主要介绍限流, 常见限流算法中又分为计数器算法, 漏桶算法, 令牌桶算法. 计数器算法 比较 阅读全文
posted @ 2018-09-10 21:12 甜菜波波 阅读(2082) 评论(1) 推荐(0) 编辑
摘要:教你初步了解红黑树 <!--EndFragment--> 作者:July、saturnman 2010年12月29日 本文参考:Google、算法导论、STL源码剖析、计算机程序设计艺术。 推荐阅读: Left-Leaning Red-Black Trees, Dagstuhl Workshop o 阅读全文
posted @ 2018-05-22 18:58 甜菜波波 阅读(465) 评论(0) 推荐(0) 编辑
摘要:红黑树插入和删除结点的全程演示 作者:July、saturnman。 时间:二零一一年三月二十八日。 出处:http://blog.csdn.net/v_JULY_v。 声明:版权所有,侵权必究。 引言: 目前国内图书市场上,抑或网上讲解红黑树的资料层次不齐,混乱不清,没有一个完整而统一的阐述。而本 阅读全文
posted @ 2018-05-22 17:55 甜菜波波 阅读(1290) 评论(2) 推荐(1) 编辑
摘要:前言 红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和黑色怎么来的,是什么含义,有什么作用都云里雾里的,能搞清楚就怪了。 本文介绍红黑树,暂时不涉 阅读全文
posted @ 2018-05-22 16:41 甜菜波波 阅读(23815) 评论(19) 推荐(28) 编辑
摘要:B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即 阅读全文
posted @ 2018-05-11 15:05 甜菜波波 阅读(866) 评论(0) 推荐(0) 编辑
摘要:在进一步分析为什么MySQL数据库索引选择使用B+树之前,我相信很多小伙伴对数据结构中的树还是有些许模糊的,因此我们由浅入深一步步探讨树的演进过程,在一步步引出B树以及为什么MySQL数据库索引选择使用B+树! 学过数据结构的一般对最基础的树都有所认识,因此我们就从与我们主题更为相近的二叉查找树开始 阅读全文
posted @ 2018-05-11 14:18 甜菜波波 阅读(103056) 评论(7) 推荐(32) 编辑
摘要:package SuanFa; import java.util.Arrays; public class QuickSort { public static void main(String[] args) { int[] a = {1, 2, 4, 5, 7, 4, 5 ,3 ,9 ,0}; S 阅读全文
posted @ 2018-05-10 09:40 甜菜波波 阅读(193) 评论(0) 推荐(0) 编辑
摘要:插入排序原理:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。 插入排序实现: [cpp] view plain copy print? void insertion_s 阅读全文
posted @ 2018-05-09 18:18 甜菜波波 阅读(1039) 评论(0) 推荐(0) 编辑
摘要:试用与有序集合 优化版,支持括号内多个运算符 package SuanFa; import java.util.Stack; public class StackCalculateExpression { public static void calculate(char[] cArr){ //定义 阅读全文
posted @ 2018-05-09 10:48 甜菜波波 阅读(317) 评论(0) 推荐(0) 编辑
摘要:最近在研究"一致性HASH算法"(Consistent Hashing),用于解决memcached集群中当服务器出现增减变动时对散列值的影响。后来 在JAVAEYE上的一篇文章中,找到了其中的 KetamaHash 算法的JAVA实现(一种基于虚拟结点的HASH算法),于是为了加深理解,对照 JA 阅读全文
posted @ 2017-07-09 15:51 甜菜波波 阅读(857) 评论(0) 推荐(0) 编辑
摘要:既然有一致性哈希,就肯定还有不一致哈希,为啥平时没人说不一致哈希呢?因为常见的哈希都是不一致的,所以就不修饰了,到了一致性哈希才特殊加个描述词修饰一下。 哈希一般都是将一个大数字取模然后分散到不同的桶里,假设我们只有两个桶,有 2、3、4、5 四个数字,那么模 2 分桶的结果就是: 这时我们嫌桶太少 阅读全文
posted @ 2017-07-09 14:56 甜菜波波 阅读(356) 评论(0) 推荐(0) 编辑