java
像向日葵一样~~
你只管努力,剩下的交给时间!
展开
-
二叉树的遍历、查找、删除
一、二叉树的概念: 1、每个节点最多只有只能有两个子节点的一种称为二叉树 2、二叉树的子节点分为左节点和右节点。 满二叉树: 如果该二叉树的所有叶子节点都在最后一层,并且节点总数=2^n-1,n为层数。 完全二叉树: 如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,称之为完全二叉树 二、二叉树的三种遍历: 前序遍历: 先输出父节点,再遍历左子树和右子树 中序遍历: 先遍历左子树,再输出父节点,再遍历右子树 后序遍历: 先遍历左子树,再原创 2020-08-02 17:18:26 · 508 阅读 · 0 评论 -
赫夫曼树(哈夫曼树、霍夫曼树,最优二叉树)
赫夫曼树的实现及编码一、简介1、简介2、相关定义二、赫夫曼树算法1、算法思路2、代码实现三、赫夫曼树编码1、基本介绍2、代码实现简介:相关定义: 一、简介 1、简介 1)给定n个权值(节点的值)作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为 赫夫曼树(哈夫曼树、霍夫曼树,最优二叉树)。 2)赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近 2、相关定义 1、路径:从一个节点往下可以到达子节点的之间的通路; 2、路径长度:通路中分支的数目。若规定跟节点所在的层原创 2020-08-02 16:38:37 · 1629 阅读 · 0 评论 -
(排序算法四)希尔排序
基本介绍: 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 基本思想: 希尔排序法基本思想 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至 1 时,整个文件恰被分成一组,算法便终止 时间复杂度&&空间复杂度&&稳定性 时间复杂度:O(n log n) 空间复杂度 :O(1)原创 2020-07-17 17:45:43 · 189 阅读 · 0 评论 -
Java垃圾回收
标记-清除算法(Mark-Sweep) 1、标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象 2、在标记完成后统一回收所有被标记的对象 缺点:一个是效率问题,标记和清除两个过程的效率都不高; 另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行过程中 需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。 复制算法(Copying) 1、将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。 2、当这一块的内存用完了,就原创 2020-07-15 22:01:52 · 93 阅读 · 0 评论