数据结构与算法
像风一样自由
Javaweb程序员喜欢各种技术
展开
-
【数据结构与算法】 二叉堆
什么是二叉堆? 二叉堆本质上是一种完全的二叉树,它分为两个类型。 1.最大堆 2.最小堆 什么是最大堆?最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。 什么是最小堆?最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。 二叉堆的根节点叫做堆顶。 最大堆和最小堆的特点决定了:最大堆的堆顶是整个堆中的最大元素;最小堆的堆顶是整个堆中的最小元素。 二叉堆 常见如下几种操作: 1.插入节点 2.删除节点 3.构建二叉堆 这几种操作都基于堆的自我调整。所谓堆的自我调.原创 2020-07-01 00:01:50 · 1862 阅读 · 0 评论 -
【二叉树的平衡策略】 AVL树
谈起AVL树,就要说起 AVL树的由来 。普通的二叉搜索树到底遇到了什么问题呢?它到底能解决什么问题呢? 传统二叉搜索树存在以下问题 1. 二分查找在大多数情况下很快,但是如果 这个二叉树生成的时候有顺序,就可能 单一的偏左,或者偏右, 成为普通的单链表查询方式。效率变低。 AVL二叉树 提出的解决方案 1.保留基本的搜索二叉树的规则 2.新增 左右子树平衡因子,也就是说任意节点的左右子树的高度差不能超过1. 在插入 过程中可能遇到 打破这种规则的,也就是说...原创 2020-06-18 11:55:41 · 290 阅读 · 0 评论 -
【解析 数据结构与算法-二叉树】
(1)为什么要使用二叉树? 因为它通常结合了另外两种数据结构的优点:1:有序数组,2:链表。在树中查找数据项的速度和在有序数组中查找一样快,并且插入数据项和删除数据项也和链表一样。 有序数组优缺点: 优点: 随机访问速度快,用二分查找法速度快。 缺点:插入,和删除都需要移动元素 物理存储结构:一般都是连续的内存地址 (也可以用链式存储结构--特殊情况) 链表优缺点 优点:插入 和删除元素快 缺点:查找数据...原创 2020-06-08 23:46:38 · 134 阅读 · 0 评论 -
【数据结构与算法之排序】1.冒泡排序
算法原理: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 public class BubbleSortInstance { public static void main(String[] args...原创 2018-08-31 00:15:41 · 137 阅读 · 0 评论