![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
GallenZhang
5年Java后端经验,主要从事互联网金融行业开发。熟悉主流的互联网技术栈,SpringBoot、Dubbo、Docker、MyBatis、RocketMQ、SpringCloud全家桶。日常分享一些实用的技术以及记录工作中踩过的坑,欢迎大家加我微信一起交流(请注明来意):1298552064
展开
-
堆排序
什么是堆?“堆”是一种常用的数据结构,也是一种特殊的树。我们来看看,到底什么样的树才是堆。堆有如下两点要求,满足这两点要求的,就是一个堆。1.堆是一个完全二叉树2.堆中的每个节点值都必须大于等于(或小于等于)其子树每个节点的值。第一点,堆是完全二叉树。那就意味除了树的最后一层,其他层节点个数都是满的,最后一层的节点都靠左排列。第二点,换种说法就是,堆中的每个节点都大于等于(或小于等于)其...原创 2019-04-09 00:02:41 · 574 阅读 · 1 评论 -
二叉树(上)
树先通过几张图来看看,什么是树,这些"树"都有哪些特征。“树"这种结构就像我们生活中见到的"树”, “树”中的每个元素称之为"节点",用连线来表示节点间的"父子关系"。比如上面的图1,A节点就是B节点的"父节点",B节点就是A节点的"子节点"。B、C的父节点是同一个节点,所以他们是"兄弟节点"。我们把没有父节点的节点叫做"根节点",图中的根节点就是节点A。把没有子节点的节点叫做"叶子节点"...原创 2019-04-09 00:05:39 · 361 阅读 · 0 评论 -
二叉树(下)
二叉树中有种特殊的树是二叉查找树,其最大的特点就是,支持动态的快速插入、删除、查找操作。其实除了二叉查找树外,散列表也支持这些操作的,并且比二叉查找树更高效,时间复杂度还是O(1)。既然散列表如此高效,那为什么还会使用二叉查找树呢?二叉查找树二叉查找树也叫二叉搜索树,是二叉树最常用的一种类型。二叉查找树为了快速查找而生,除了支持快速查找一个数据,还支持快速插入、删除数据。二叉查找树的特点:...原创 2019-04-09 00:06:54 · 214 阅读 · 0 评论