![](https://img-blog.csdnimg.cn/2020070812101543.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法(Java版)
文章平均质量分 84
这个是对Java基础的深入学习,如果觉得数据结构过于难懂,可以先去看看笔者的JavaSE30天系列笔记:https://blog.csdn.net/m0_46153949/article/details/106167213,如有不足,欢迎斧正交流!!!
杨丙寅
努力写好每一篇Java学习笔记总结
展开
-
Java数据结构与算法 day13 程序员十大常用算法
文章目录第十三章 十大常用算法二分查找算法(非递归)分治算法动态规划算法KMP算法贪心算法普利姆算法克鲁斯卡尔算法克鲁斯卡尔算法介绍克鲁斯卡尔算法图解说明克鲁斯卡尔算法分析如何判断是否构成回路-举例说明?鲁斯卡尔算法的代码说明迪杰斯特拉算法(这个没怎么懂!!!)弗洛伊德算法回溯算法全劇終!!!第十三章 十大常用算法本章源码:https://github.com/name365/Java-Data-structure二分查找算法(非递归)二分查找算法(非递归)介绍前面我们讲过了二分查找算法,原创 2020-06-27 11:17:36 · 2416 阅读 · 2 评论 -
Java数据结构与算法 day12 图
文章目录第12章 图图的基本介绍和存储形式图基本介绍图的表示方式图的创建图解和代码实现图的深度优先(DFS)算法图解与实现图的广度优先(BFS)算法图解图的DFS和BFS比较本章思维导图第12章 图本章源码:https://github.com/name365/Java-Data-structure图的基本介绍和存储形式图基本介绍为什么要有图???前面我们学了线性表和树,线性表局限于一个直接前驱和一个直接后继的关系,树也只能有一个直接前驱也就是父节点。当我们需要表示多对多的关系时,这里我原创 2020-06-14 23:22:49 · 893 阅读 · 1 评论 -
Java数据结构与算法 day11 多路查找树
文章目录第11章 多路查找树二叉树与B树2-3树B树、B+树和B*树本章思维导图第11章 多路查找树二叉树与B树二叉树的问题分析二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树:二叉树需要加载到内存的,如果二叉树的节点少,没有什么问题,但是如果二叉树的节点很多(比如1亿), 就存在如下问题:问题1:在构建二叉树时,需要多次进行i/o操作(海量数据存在数据库或文件中),节点海量,构建二叉树时,速度有影响. 问题2:节点海量,也会造成二叉树的高度很大,会降低操作速度.原创 2020-06-14 09:57:32 · 698 阅读 · 3 评论 -
Java数据结构与算法 day10 树结构实际应用(三)
文章目录第10章 树结构的实际应用二叉排序树二叉排序树(BST)的介绍二叉排序树(BST)创建和遍历二叉排序树删除结点思路图解二叉排序树删除叶子结点BST删除有一颗子树的结点BST删除有二颗子树的结点平衡二叉树(AVL树)平衡二叉树(AVL树)介绍AVL树左旋转思路图解AVL树高度求解AVL树左旋转代码实现AVL树右旋转图解和实现AVL树双旋转图解和实现本章思维导图第10章 树结构的实际应用本章源码:https://github.com/name365/Java-Data-structure二叉排原创 2020-06-13 21:19:31 · 1294 阅读 · 2 评论 -
Java数据结构与算法 day09 树结构实际应用(二)
文章目录第10章 树结构的实际应用赫夫曼编码霍夫曼编码基本介绍赫夫曼编码的原理图解数据压缩-创建赫夫曼树思路及实现数据压缩-生成赫夫曼编码表数据压缩-赫夫曼编码字节数组数据压缩-赫夫曼字节数组封装数据解压-字节转二进制字符串数据解压-赫夫曼解码使用赫夫曼编码压缩文件使用赫夫曼编码解压文件赫夫曼编码的注意事项第10章 树结构的实际应用本章源码:https://github.com/name365/Java-Data-structure赫夫曼编码霍夫曼编码基本介绍基本介绍:1.赫夫曼编码也翻译原创 2020-06-10 12:04:25 · 1207 阅读 · 1 评论 -
Java数据结构与算法 day08 树结构实际应用(一)
文章目录第10章 树结构实际应用堆排序大顶堆和小顶堆图解说明堆排序的思路图解与实现赫夫曼树赫夫曼树的基本介绍赫夫曼树创建步骤图解与实现第10章 树结构实际应用本章源码:https://github.com/name365/Java-Data-structure堆排序大顶堆和小顶堆图解说明堆排序基本介绍1.堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。2.堆是具有以下性质的完全二叉树:每个结点原创 2020-06-08 19:35:26 · 1587 阅读 · 2 评论 -
数据结构与算法(Java笔记15天)
文章目录Java数据结构与算法前言目录结束Java数据结构与算法前言源码:https://github.com/name365/Java-Data-structure目录名称地址第一章 稀疏数组https://blog.csdn.net/m0_46153949/article/details/106266666第二章 队列https://blog.csdn.net/m0_46153949/article/details/106266666第三章 链表htt原创 2020-06-07 09:17:54 · 12824 阅读 · 7 评论 -
Java数据结构与算法 day07 树结构基础
文章目录第九章 树结构基础二叉树数组 链表 树存储方式分析二叉树的概念和常用术语前序中序后序遍历的二叉树图解与实现前序中序后序查找思路图解与实现二叉树删除结点思路图解与实现顺序存储二叉树线索化二叉树线索化二叉树基本介绍线索化二叉树思路图解及实现遍历线索化二叉树实现第九章 树结构基础本章源码:https://github.com/name365/Java-Data-structure二叉树数组 链表 树存储方式分析为什么需要树这种数据结构?数组存储方式的分析优点:通过下标方式访问元原创 2020-06-06 23:06:09 · 1901 阅读 · 6 评论 -
Java数据结构与算法 day06 查找算法与哈希表
文章目录第七章 查找算法线性查找分析和实现二分查找分析与实现插值查找分析与实现插值查找原理应用案例斐波那契查找分析与实现斐波那契(黄金分割法)原理应用案例本章思维导图第八章 哈希表哈希表的介绍和内存布局哈希表实现思路图解代码实现本章思维导图第七章 查找算法本章源码:https://github.com/name365/Java-Data-structure线性查找分析和实现有一个数列:{1,8, 10, 89, 1000, 1234},判断数列中是否包含此名称【顺序查找】要求如果找到了,就提示原创 2020-06-01 15:47:25 · 1654 阅读 · 30 评论 -
Java数据结构与算法 day05 排序算法
文章目录第六章 排序算法排序算法介绍和分类算法的时间复杂度与空间复杂度时间复杂度常见的时间复杂度空间复杂度冒泡排序基本介绍排序过程代码实现选择排序基本介绍选择排序应用实例插入排序基本介绍插入排序应用实例第六章 排序算法本章源码:https://github.com/name365/Java-Data-structure排序算法介绍和分类排序也称排序算法 (Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载原创 2020-05-29 17:32:59 · 2291 阅读 · 19 评论 -
Java数据结构与算法 day04 递归
文章目录第五章 递归递归应用场景和调用机制递归的应用场景递归的概念递归调用机制递归能解决的问题和规则递归能干什么????运用递归需要遵守那些规则???迷宫回溯问题分析和实现八皇后问题分析和实现本章思维导图第五章 递归本章源码:https://github.com/name365/Java-Data-structure递归应用场景和调用机制递归的应用场景先看个实际应用场景,迷宫问题(回溯),递归(Recursion)递归的概念简单的说: 递归就是方法自己调用自己,每次调用时传入不同的原创 2020-05-28 12:14:47 · 1564 阅读 · 5 评论 -
Java数据结构与算法 day03 栈
文章目录第四章 栈栈的应用场景和介绍栈的介绍栈的应用场景栈的思路分析及实现栈实现综合计算器-思路分析及实现前缀 中缀 后缀表达式规则前缀表达式(波兰表达式)中缀表达式后缀表达式逆波兰计算器分析和实现中缀转后缀表达式思路分析及实现完整版逆波兰计算器本章导图总结第四章 栈栈的应用场景和介绍先看一个例子请输入一个表达式计算式:[7*2*2-5+1-5+3-3] 点击计算【如下图】请问: 计算机底层是如何运算得到结果的?注意不是简单的把算式列出运算,因为我们看这个算式 7 * 2 * 2 -原创 2020-05-27 22:03:30 · 2455 阅读 · 17 评论 -
Java数据结构与算法 day02 链表
文章目录第三章 链表单链表介绍和内存布局单链表创建和遍历的分析实现添加(创建)过程遍历过程代码实现单链表按顺序插入节点单链表节点的修改单链表节点的删除和小结单链表面试题新浪面试题腾讯面试题百度面试题课后练习双向链表增删改查分析图解及实现第三章 链表单链表介绍和内存布局链表是有序的列表,但是它在内存中是实际存储结构如下:小结:1.链表是以节点的方式来存储,是链式存储(即各个节点之间并不一定是连续存储的,而是相互指向的);2.每个节点包含 data 域:存放数据的域, next 域:指向下一个原创 2020-05-22 23:32:21 · 2665 阅读 · 4 评论 -
Java数据结构和算法 day01 稀疏数组与队列
文章目录第一章 数据结构和算法概述几个经典的算法面试题数据结构和算法的重要性数据结构与算法框架数据结构和算法的关系(了解!!!)编程中实际遇到的几个问题(了解)线性结构和非线性结构第二章 稀疏数组与队列稀疏数组的应用场景稀疏数组转换的思路分析及实现队列的应用场景和介绍数组模拟队列的思路分析及实现数组模拟环形队列思路分析及实现Leetcode每日一练[1. 两数之和](https://leetcode-cn.com/problems/two-sum/)[5. 最长回文子串](https://leetcode-原创 2020-05-21 20:21:37 · 5435 阅读 · 5 评论