数据结构&算法
文章平均质量分 96
介绍算法和数据结构的
爱吃牛肉的大老虎
学无止境,既要有深度又要有广度地学习
展开
-
MemCache和一致性Hash算法讲解
文章目录1 MemCache讲解1.1 MemCache是什么1.2 MemCache访问模型1.3 MemCache写缓存流程1.4 一致性Hash算法1.4.1 余数Hash1.4.2 一致性Hash算法1.5 MemCache实现原理1.5.1 总结MemCache的特性和限制1.6 MemCache指令汇总1.6.1 stats指令解读1.6.2 stats slab指令解读1.7 MemCache的Java实现实例1 MemCache讲解1.1 MemCache是什么MemCache是一个自原创 2021-11-07 17:27:00 · 927 阅读 · 0 评论 -
算法之广度优先,深度优先,拓扑,贪心,并查集
文章目录1 图算法1.1 广度优先搜索1.2 深度优先搜索1.3 拓扑排序1.4 贪心算法1.5 并查集(不相交集合数据结构)1.5.1 并查集讲解1.5.2 Kruskal算法1.5.3 Prim算法1.8 Bellman-Ford算法1 图算法地图数据常常可以用图(Graph)这类数据结构表示,那么在图结构中常用的搜索算法也可以应用到路径规划中。首先是两种针对无权图的基本图搜索算法:深度优先搜索(Depth First Search, DFS)、广度优先搜索(Breadth First Searc转载 2022-02-23 15:44:47 · 1739 阅读 · 0 评论 -
排序之八种排序详解
文章目录1 排序概述1.1 插入排序1.1.1 直接插入排序1.1.1.1 定义1.1.1.2 java实现1.1.2 希尔排序(最小增量排序)1.1.2.1 定义1.1.2.2 java实现1.2 选择排序1.2.1 简单选择排序1.2.1.1 定义1.2.1.2 java实现1.2.2 堆排序1.2.2.1 定义1.2.2.2 java实现1.3 交换排序1.3.1 冒泡排序1.3.1.1 定义1.3.1.2 java实现1.3.2 快速排序1.3.2.1 定义1.3.2.2 java实现1.4 归并排原创 2022-02-20 22:04:09 · 881 阅读 · 0 评论 -
加密之SSL和单双向认证
文章目录1 SSL1.1 SSL了解1.2 导入证书1.3 tomcat配置SSL1.4 具体操作2 单向认证2.1 第三方签名3 双向认证3.1 引言3.2 使用openssl脚本1 SSL1.1 SSL了解SSL配置是我们在实际应用中经常见到的场景SSL(Secure Sockets Layer,安全套接层)是为通信提供安全及数据完整性的一种安全协议,SSL在网络传送层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。SSL协议可分为两层:SS转载 2022-01-18 09:21:19 · 1609 阅读 · 0 评论 -
加密之数字证书和PFX信息交换
文章目录1 数字证书1.1 制作证书1.1.1 生成keyStroe文件1.1.2 生成自签名证书1.2 实际操作1.2.1 获取公钥1.2.1.1 通过流式获取公钥1.2.1.2 通过文本文件获取公钥1.2.2 获取私钥1.2.2.1 知道别名获取私钥1.2.2.2 不知道别名获取私钥1.2.2.3 获取私钥时异常UnrecoverableKeyException1.2.2.3.1 把密码修改为一致密码1.2.2.3.2 不同密码不同处理1.2.3 加密解密1.2.3.1 私钥加密解密1.2.3.2 公钥原创 2022-01-16 14:09:09 · 852 阅读 · 0 评论 -
加密之非对称RSA,DH,DSA,ECC
文章目录1 RSA算法1.1 定义1.2 原理1.2.1 互质关系1.2.2 欧拉函数1.2.3 欧拉定理1.2.4 模反元素1.3 实际操作1.3.1 生成公私钥并获取1.3.2 公私钥加签验签1.3.3 公私钥加密解密1.3.4 结果验证2 DH算法2.1 定义2.2 实际操作2.2.1 生成甲乙公私钥2.2.1.1 生成甲公私钥2.2.1.2 根据甲公钥生成乙公私钥2.2.1.3 获取公私钥2.2.2 根据公私钥生成本地密钥2.2.3 加密解密2.2.4 结果验证3 DSA算法3.1 定义3.2 实际原创 2022-01-12 16:50:38 · 568 阅读 · 0 评论 -
加密之对称Base64,DES,PBE
文章目录1 Base64算法1.1 简介1.2 原理1.2.1 转换步骤1.2.2 转换对应表1.2.3 转换实例分析1.2.3.1 三字节转换1.2.3.2 不足三字节转换1.3 实际操作2 DES算法2.1 定义2.2 具体操作3 PBE算法3.1 定义3.2 实际操作1 Base64算法BASE64 严格地说,属于编码格式,而非加密算法MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法。我们通常只把他们作为加密的基础。单纯的以上三种的加密并不可靠。1.1 简介B原创 2022-01-11 16:51:00 · 967 阅读 · 0 评论 -
加密之单向MD5,SHA,HMAC
文章目录1 Java加密概述1.1 Java的安全体系架构介绍2 公私钥2.1 引言2.2 实际操作2.2.1 加签验签2.2.1.1 私钥加签2.2.1.2 公钥验签2.2.2 加密解密2.2.2.1 生成公私钥2.2.2.2 获取公私钥2.2.2.3 加密解密3 MD5加密3.1 概述3.2 算法原理3.3 实际操作3.3.1 加密3.3.2 MD5处理后转大写十六进制3.3.3 MD5验密4 SHA加密4.1 概述4.2 原理4.3 实际操作4.4 SHA和MD5比较1 Java加密概述1.1 J原创 2022-01-09 17:03:32 · 2810 阅读 · 0 评论 -
Java之运算符,位运算(源码反码补码)和基本数据类型
文章目录1 java运算符1.1 各个运算符一览1.2 部分运算符说明1.3 java基本位操作1.3.1 位操作符号1.3.2 原码反码补码1.3.2.1 相关定义1.3.2.2 为何要使用原码, 反码和补码1.3.2.3 负数运算1.3.2.4 转换16进制为什么需要 &0xff1.3.3 常用的位运算符运算1.3.3.1 左右位移2 基本数据类型1 java运算符1.1 各个运算符一览 序号 符号 名称 结合性(与原创 2021-10-20 17:40:08 · 830 阅读 · 0 评论 -
二叉树各种类型汇总
文章目录1 树类型1.1 二叉树1.2 完全二叉树1.3 满二叉树1.4 二叉搜索树(二叉排序树、二叉查找树)1.5 平衡二叉树1.6 红黑树1.6.1 红黑树概念1.6.2 红黑树和AVL树区别1.7 B树类型1.7.1 B树1.7.2 B-树1.7.3 B+树1.7.4 B*树学习了树的结构类型后,主要对各种树类型进行汇总总结1 树类型树中的基本概念:https://jingzh.blog.csdn.net/article/details/107128291树类型概述:二叉树,完全二叉树,满二转载 2021-06-26 17:41:59 · 8917 阅读 · 0 评论 -
HashMap原理,碰撞,ConcurrentHashMap
文章目录1 HashMap1.1 哈希算法1.2 对比:Hashtable、HashMap、TreeMap1.2.1 Hashtable1.2.2 HashMap1.2.3 TreeMap1.3 HashMap概念和底层结构1.3.1 概念1.3.2 原理1.3.2.1 加载因子设置0.75,初始化临界值121.3.2.2 哈希表底层怎么计算hash值1.3.2.3 put1.3.2.4 一般用什么作为HashMap的key1.3.2.5 get1.3.2.6 如何重新调整HashMap大小1.4 哈希碰撞原创 2020-06-19 23:41:21 · 1747 阅读 · 1 评论 -
算法中的递归和尾递归
文章目录1 递归2 尾递归1 递归对于很多编程初学者来说,递归算法是学习语言的最大障碍之一。很多人也是半懂不懂,结果学到很深的境地也会因为自己基础不好,导致发展太慢。可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用。今天,我们就来说一说递归算法的使用。什么是递归递归,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。也就是说,递归算法是一种直接或者间接调用自身函数或者方法的算法。通俗来说,递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调原创 2020-07-12 09:51:49 · 1477 阅读 · 3 评论 -
算法中的时间复杂度和空间复杂度
文章目录1 算法简介1.1 时间复杂度1.1.1 认识时间复杂度1.1.2 常见时间复杂度1.1.2.1 常数阶O(1)1.1.2.2 线性阶O(n)1.1.2.3 对数阶O(logN)1.1.2.4 线性对数阶O(nlogN)1.1.2.5 平方阶O(n²)1.1.2.6 立方阶O(n³),K次方阶O(nk)1.1.2.7 最好最坏情况时间复杂度1.1.2.8 平均情况时间复杂度1.1.2.9 均摊时间复杂度1.2 空间复杂度1.2.1 空间复杂度认识1.2.2 常见的空间复杂度1.2.2.1 空间复杂度转载 2020-07-10 18:46:36 · 437 阅读 · 0 评论 -
深入理解数据结构之树
文章目录1 前言1.1 结点概念1.2 树结点声明2 树2.1 树的定义1 前言树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列。在学习与总结的同时更加深入的了解掌握二叉树。本系列文章将着重介绍一般二叉树、完全二叉树、满二叉树、线索二叉树、霍夫曼树、二叉排序树、平衡二叉树、红黑树1.1 结点概念结点是数据结构中的基础,是构成复杂数据结构的基本组成单位1.2 树结点声明本系列文章中提及的结点专指树的结点。例如:转载 2020-07-05 23:32:33 · 4020 阅读 · 0 评论 -
JAVA中常用的数据结构和XML解析
文章目录1常见的数据结构1.1 数组(Array)1.2 栈(Stack)1.3 对列(Queue)1.4 链表(Linked List)1.5 树(Tree)1.6 堆(Heap)1.7 图(Graph)1.8 散列表(Hash)2 XML解析2.1 JDOM解析2.2 SAX解析2.3 DOM解析2.4 DOM4J解析1常见的数据结构1.1 数组(Array)在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构原创 2020-06-27 23:32:46 · 2830 阅读 · 0 评论