
数据结构和算法
文章平均质量分 84
java版本的数据结构和算法
BestandW1shEs
沉淀沉淀!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多路查找树
一.多叉树原理 1.二叉树的问题分析: 二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树: 二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1亿), 就存在如下问题: (1) 问题1:在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响; (2) 问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度。 2.多叉树概述: (1) 在二叉树中,每个节点有数据项,最多有两个子节点,...原创 2021-12-20 17:53:27 · 685 阅读 · 0 评论 -
稀疏数组
稀疏数组 前情提要 有一个需求:编写的五子棋程序中,有存盘退出和续上盘的功能 分析问题:因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据,所以通过稀疏数组只对有用数据进行存储。 1.稀疏数组概述 1)当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 2)稀疏数组的处理方法是: a.记录数组一共有几行几列,有多少个不同的值; b.把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 3)稀疏数组举例说明: .原创 2021-01-30 21:09:04 · 183 阅读 · 0 评论 -
二叉树(JAVA)
二叉树 前情提要 为什么需要树这种数据结构? 我们通过对比数组、链表、树的优缺点来进行分析,分析如下: (1)数组存储方式的分析: 1)优点:通过下标方式访问元素,速度快;对于有序数组,还可使用二分查找提高检索速度; 2)缺点:如果要删除具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 。 (2)链式存储方式的分析: 1)优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入节...原创 2021-01-25 11:41:10 · 295 阅读 · 1 评论 -
平衡二叉树(JAVA)
平衡二叉树(AVL) 前情提要 平衡二叉树需要有二叉排序树的基础,平衡二叉树是对二叉排序树可能出现的性能问题进行优化。 给定一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST),如下图所示: 上图存在的问题分析: (1)左子树全部为空,从形式上看,更像一个单链表; (2)插入速度没有影响; (3)查询速度明显降低(因为需要依次比较), 不能发挥 BST的优势,因为每次还需要比较左子树,其查询速度比单链表还慢。 解决方案:平衡二叉树(AVL) ...原创 2021-01-22 13:59:56 · 293 阅读 · 0 评论 -
二叉排序树(JAVA)
二叉排序树 前情提要 需求: 给出一个数列 (7, 3, 10, 12, 5, 1, 9),要求能够高效的完成对数据的查询、添加、删除。 解决方案分析: (1)使用数组: 1)数组未排序,优点:直接在数组尾添加,速度快; 缺点:查找速度慢; 2)数组排序,优点:可以使用二分查找,查找...原创 2021-01-20 21:41:08 · 271 阅读 · 0 评论