前言 在 "【算法04】树与二叉树" 中,已经介绍过了关于树的一些基本概念以及二叉树的前中后序遍历,而这篇文章将是在二叉树的基础上来展开讲解的二叉搜索树,也就是说二叉搜索树建立在树的基础之上。至于博主为何要花一整篇文章来讲这个二叉搜索树呢?原因很简单,红 黑树是基于二叉搜索树的,如果对二叉搜索树不了 ...
分类:
其他好文 时间:
2019-12-16 09:18:32
阅读次数:
88
数据结构和算法 重点内容 数据结构:字符串、栈、队列、二叉树、优先队列、hash表(Redis怎么用的)、B+树(数据库索引) 算法:基本的几种排序、DFS、BFS、基本的动态规划、基本的图算法如果不是专门的算法工程师,消化好这些内容就够了。真的要手撕红黑树,那就有点夸张了。 参考书籍 《程序员面试 ...
分类:
其他好文 时间:
2019-12-15 23:52:10
阅读次数:
285
概述 在上述的随笔中已经介绍了JDK1.7版本的ConCurrentHashMap源码和测试了,现在这篇随笔主要介绍JDK1.8版本的ConCurrentHashMap,这个版本抛弃了分段锁的实现,直接采用CAS+synchronized保证并发更新的安全性,底层采用数组+链表+红黑树的存储结构。其 ...
分类:
编程语言 时间:
2019-12-14 16:09:44
阅读次数:
84
1算法 排序 选择排序 冒泡排序 希尔排序2数据结构 数组 集合 队列 栈 先进后出 堆 (堆是一种经过排序的树形数据结构) 完全二叉树 平衡二叉树 红黑树 3设计模式 工厂模式 单例模式 代理模式 策略模式 (我理解的只有这几个) 迭代器模式 (工作中没有具体使用 只有粗略的使用到) 工厂模式:工 ...
分类:
其他好文 时间:
2019-12-13 23:23:48
阅读次数:
116
1 set介绍(1)set是STL中一个很有用的容器,用来存储同一种数据类型的数据结构(可以称之为K的模型,红黑树的啥东西),基本功能与数组相似。 (2)set与数组不同的是,在set中每个元素的值都是唯一的。 (3)而且set插入数据时,能够根据元素的值自动进行排序。 (4)set中数元素的值并不 ...
分类:
其他好文 时间:
2019-12-13 13:46:18
阅读次数:
84
哈希表结构 哈希表是由数组+链表组成的,首先有一个数组,数组的每一个位置都用来存储一个链表,链表的基本节点为:【hash值,key值,value值,next】,当存入一个键值对时,首先调用hashcode()方法获得key的hashcode,然后通过算法计算出hash值,当不同的key取到相同的ha ...
分类:
编程语言 时间:
2019-12-11 13:12:42
阅读次数:
70
数据结构 树(上) 一、概述 主要内容包含树的基本概念、二叉树(平衡二叉树、完全二叉树、满二叉树)、搜索树(二叉搜索树、平衡搜索树、AVL树、伸展树、(2,4)树、红黑树)、(a,b)树、B树等实际运用的树数据结构 二、基本知识(树的定义和属性) 1、树(非线性数据结构)运用于一些算法实现的效率会比 ...
分类:
其他好文 时间:
2019-12-08 11:01:30
阅读次数:
119
数据结构 树(下) 一、概述 AVL树、伸展树、红黑树搜索树算法保证最坏情况或者一系列操作情况下,搜索、插入和删除的操作的时间复杂度是O(logn)。本文主要内容包含:平衡搜索树中的AVL树、伸展树、(2,4)树、红黑树 和(a,b)树、B树等实际运用的树数据结构。 二叉搜索树的删除 二、AVL树 ...
分类:
其他好文 时间:
2019-12-08 10:56:38
阅读次数:
97
TreeSet:无序,不可重; 底层结构式是红黑树进行存储; 特点:默认从小到大排序; 可以定义比较规则,排序规则,并且可以使用去重原则: 内部比较器|自然排序: 实现Comparable接口,重写comparaTo方法,在方法中定义比较规则.,默认的比较规则; 外部比较器|指定比较器:实现一个Co ...
分类:
编程语言 时间:
2019-12-05 22:27:36
阅读次数:
103
蚂蚁花呗一面(一个小时):JDK中有哪几个线程池?顺带把线程池讲了个遍Java容器有哪些?哪些是同步容器,哪些是并发容器?ArrayList和LinkedList的插入和访问的时间复杂度?java反射原理,注解原理?JDK中有哪几个线程池?顺带把线程池讲了个遍TCP和UDP的区别?TCP数据传输过程中怎么做到可靠的?说说一致性Hash原理新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算
分类:
数据库 时间:
2019-12-05 21:55:52
阅读次数:
130