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