![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构与算法
介绍和 数据结构,算法相关的内容,代码用java实现。
只爭朝夕不負韶華
本博客主要用于分享学习笔记和学习/工作中遇到的一些问题,不加任何社交平台好友。博主目前负责前端开发,但仍在努力学习更多技术和知识。愿世上永无BUG。
展开
-
操作系统:Java模拟CPU调度算法(非抢占短进程优先、可抢占优先权调度、多级反馈队列调度)
xxx本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷原创 2020-07-06 11:47:35 · 3003 阅读 · 0 评论 -
操作系统:Java模拟磁盘调度算法(先来先服务、最短寻道优先、电梯调度方法)
/** * @author zsx * @Date: 2020/6/8 * 代码功能:使用先来先服务、最短寻道优先、电梯调度方法进行调度。 * 求出平均移动道数。当前读写头在90号,向磁道号增加的方向移动。 * */public class DiskScheduling { public static void main(String args[]) { // 磁道按访问顺序初始化 int distArr[] = { 30, 50, 100, 180, 20, 9原创 2020-06-08 09:48:54 · 2328 阅读 · 1 评论 -
操作系统:Java模拟页面置换算法(最佳置换算法、先进先出算法、最近最久未使用算法)
import java.util.Scanner;/** * @author zsx * @Date: 2020/6/1 * */public class PageReplace { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请问您想为进程分配几个物理块(推荐 3或4)?"); int blockNum = sc.nextInt原创 2020-06-08 09:47:39 · 2318 阅读 · 0 评论 -
操作系统:Java模拟内存管理(循环首次适应算法、回收空间算法)
输出效果:import java.util.Iterator;import java.util.LinkedList;import java.util.Scanner;/** * @author zsx * @Date: 2020/5/11 * */public class MemoryManage { public static void main(String args[]) { // 为整段内存划分分区 LinkedList areaList = new LinkedL原创 2020-05-18 15:43:12 · 1010 阅读 · 0 评论 -
操作系统:Java模拟银行家算法
1、系统可用资源=(5,3,8,2,10)2、若干进程最大需求矩阵如下表所示:import java.util.Scanner;public class Bank { //用于判断数据输入是否有误 / 用于判断系统是否处于安全状态 public static boolean judge = true; //用于记录手动输入的 每个进程已经占有的资源 public static i...原创 2020-05-11 12:28:43 · 502 阅读 · 0 评论 -
操作系统:Java模拟作业调度算法(先来先服务、短作业优先、高响应者优先)
模拟:操作系统的作业调度算法public class JobScheduling { public static void main(String[] args) { Job jobA = new Job("A", 0, 6); Job jobB = new Job("B", 2, 50); Job jobC = new Job("C", 5, 20); Job jobD =...原创 2020-04-26 08:50:21 · 4810 阅读 · 0 评论 -
Java数据结构与算法_13 常用算法(贪心算法-集合覆盖问题、普利姆算法-修路问题、克鲁斯卡尔算法-公交站问题、迪杰斯特拉+弗洛伊德算法-最短路径问题、马踏棋盘算法)
Java数据结构与算法_13 常用算法贪心算法应用-集合覆盖完整代码最小生成树相关概念普里姆算法应用-修路问题完整代码克鲁斯卡尔算法应用-公交站问题完整代码迪杰斯特拉(Dijkstra)算法应用-最短路径完整代码弗洛伊德(Floyd)算法应用-最短路径完整代码马踏棋盘算法完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷贪心算法...原创 2020-03-27 14:49:22 · 569 阅读 · 0 评论 -
Java数据结构与算法_12 常用算法 (二分查找算法、分治算法-汉诺塔问题、动态规划算法-背包问题、KMP算法-字符串匹配)
Java数据结构与算法_12 常用五种算法二分查找算法完整代码分治算法示例:汉诺塔问题完整代码动态规划算法示例:背包问题完整代码KMP算法本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷二分查找算法前面说到过二分查找算法,但那时候使用的是递归的方式,下面说的是二分查找算法的非递归方式二分查找法只适用于从有序的数列中进行查找(比如数...原创 2020-03-25 14:12:34 · 331 阅读 · 0 评论 -
Java数据结构与算法_11 图 (深度优先遍历、广度优先遍历)
Java数据结构与算法_11 图图基本介绍图的常用概念图的表示方式完整代码图的遍历深度优先遍历基本思想广度优先遍历基本思想完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷图基本介绍为什么要有图?前面出现了线性表和树。线性表局限于一个直接前驱和一个直接后继的关系;树也只能有一个直接前驱也就是父节点;当我们需要表示多对多的...原创 2020-03-17 16:24:19 · 398 阅读 · 0 评论 -
Java数据结构与算法_10 B树和2-3树的基本介绍
Java数据结构与算法_10 B树和2-3树的基本介绍二叉树与B树多叉树2-3树基本介绍B树的基本介绍B+树的介绍B*树的介绍本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷二叉树与B树二叉树的问题分析:二叉树的操作效率较高,但是也存在问题, 请看下面的二叉树:二叉树需要加载到内存。如果二叉树的节点少,没有什么问题,但是如果二叉...原创 2020-03-17 10:12:31 · 737 阅读 · 0 评论 -
Java数据结构与算法_09 树结构实际应用 (堆排序、哈夫曼树、二叉排序树、平衡二叉树)
Java数据结构与算法_09 树结构实际应用堆排序完整代码哈夫曼树(Huffman Tree)完整代码哈夫曼编码(Huffman Coding)本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷堆排序基本介绍:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏、最好、平均时间复杂度均为O(nlogn),它...原创 2020-03-13 19:54:03 · 444 阅读 · 0 评论 -
Java数据结构与算法_08 树结构基础部分 (二叉树的遍历、顺序存储二叉树、线索化二叉树)
Java数据结构与算法_08 树结构基础部分树的常用术语二叉树二叉树的概念二叉树的遍历完整代码顺序存储二叉树完整代码线索化二叉树完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷为什么需要树这种数据结构?数组存储方式的分析:优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具...原创 2020-03-10 20:57:31 · 234 阅读 · 0 评论 -
Java数据结构与算法_07 哈希表
Java数据结构与算法_07 哈希表本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。这个哈希表可以用链表...原创 2020-03-10 16:05:46 · 155 阅读 · 0 评论 -
Java数据结构与算法_06 查找算法 (顺序查找、二分查找、插值查找、斐波那契查找)
Java数据结构与算法_06顺序(线性)查找完整代码二分查找/折半查找完整代码插值查找完整代码斐波那契查找完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷在java中,我们常用的查找有四种:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找顺序(线性)查找顺序查找很简单,就是一个一个比较,直接看代码。所以...原创 2020-03-08 17:23:59 · 203 阅读 · 0 评论 -
Java数据结构与算法_05 时间复杂度+常用排序算法 (冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、基数排序)
Java数据结构与算法_05时间复杂度时间频度①忽略常数项②忽略低次项③忽略系数一些说明常见的时间复杂度① 常数阶O(1)② 对数阶O(log2n)③ 线性阶O(n)④ 线性对数阶O(nlog2N)⑤ 平方阶O(n²)⑥ 立方阶O(n³)、K次方阶O(n^k)平均时间复杂度和最坏时间复杂度算法的空间复杂度简介1. 冒泡排序完整代码2. 选择排序完整代码3. 插入排序完整代码4. 希尔排序完整代码5...原创 2020-03-06 23:40:03 · 497 阅读 · 0 评论 -
Java数据结构与算法_04 递归(八皇后问题、迷宫问题)
Java数据结构与算法_04递归迷宫问题完整代码八皇后问题完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷递归递归就是方法自己调用自己。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。比如://阶乘public static int factorial(int n) { if (n == 1) { ...原创 2020-03-05 19:31:49 · 279 阅读 · 0 评论 -
Java数据结构与算法_03 栈 (小型计算器、逆波兰表达式)
Java数据结构与算法_03栈数组模拟栈完整代码应用场景1:小型计算器(使用栈计算表达式)完整代码应用场景2:前缀、中缀、后缀表达式(逆波兰表达式)前缀表达式中缀表达式后缀表达式具体任务要求完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷栈(1)栈的英文为(stack)(2)栈是一个先入后出(FILO-First In La...原创 2020-02-27 18:31:43 · 239 阅读 · 0 评论 -
Java数据结构与算法_02 链表 (约瑟夫问题)
Java数据结构与算法_02单向链表添加数据(创建)修改节点信息删除节点信息完整代码面试题完整代码双向链表完整代码单向环形链表(约瑟夫问题)完整代码本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷单向链表链表是有序的列表,但是它在内存中是存储如下:链表是以节点的方式来存储的,每个节点包含 data 域, next 域,data用来...原创 2020-02-25 16:48:31 · 175 阅读 · 0 评论 -
Java数据结构与算法_01 稀疏数组和队列
Java数据结构与算法_01稀疏数组应用实例代码实现队列本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。学习资料来源于:尚硅谷数据结构包括:线性结构和非线性结构。线性结构:1)线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。2)线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构,顺序存储的线性表称为顺序表,顺序表中的存储...原创 2020-02-24 00:34:52 · 289 阅读 · 1 评论 -
Java——数据结构接口
Java——数据结构接口基本结构:1)Collection集合接口:1.List接口:*LinkedList:链表类*ArrayList:数组列表类2.Set接口:*HashSet集合类*TreeSet集合类3.Map映射接口:*Hashtable散列表类*HashMap散列映射类2)Iterator迭代器接口:实现各种集合元素的读取。迭代器的作用:迭代器模式:由以下角色组成。迭代器模式给容器的应...原创 2019-10-02 11:38:46 · 1121 阅读 · 0 评论 -
Java——数据结构
Java——数据结构一、链表(LinkedList)(1)实现对链表的添加(2)实现对链表的删除(3)常用方法:二、数组列表类(ArrayList)数组列表(ArrayList)的构造函数和常用方法:三、散列表(Hashtable)散列表的构造函数:散列表的主要方法:四、散列集(HashSet)散列集的构造函数:散列集的常用方法:五、树集(TreeSet)树集的构造函数:树集的方法函数:六、映像七...原创 2019-10-02 11:23:14 · 181 阅读 · 0 评论 -
Langrange插值和Newton插值的java实现
本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。import java.util.Scanner;public class Langrange { static double x[]={0,0,0,0,0}; static double y[]={0,0,0,0,0}; public static void main(String args[]...原创 2019-10-27 17:54:18 · 948 阅读 · 1 评论 -
复化梯形公式的java实现
题目:利用复化梯形求积公式计算圆周率具体要求:用下面这个公式,把【0,1】区间十等分,用梯形法计算Π。原创 2019-11-05 20:12:52 · 1272 阅读 · 0 评论 -
Gauss消去法和主元素消去法的Java实现
本人是个新手,写下博客用于自我复习、自我总结。如有错误之处,请各位大佬指出。题目:分别用Gauss消去法和主元素消去法解方程组(要求用具有舍入的4位数进行运算),并将所得结果与具有四位有较数字的准确解进行比较。import java.math.BigDecimal;import java.util.Scanner;//本程序只能解决指定问题(直接法解方程组)public ...原创 2019-11-19 22:23:49 · 860 阅读 · 0 评论