自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 【数据结构】Java实现希尔排序和基数排序

目录01 希尔排序1.1 希尔排序举例和图解1.2 算法步骤1.3 代码实现1.3.1 交换法实现1.3.2 移动法实现02 基数排序(桶排序)2.1 基数排序原理图解2.2 基数排序代码实现01 希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率; 但插入排序一般来...

2022-03-18 07:19:52 237

原创 【java数据结构】递归应用: 迷宫回溯问题和八皇后问题

目录01 递归1.1 递归的调用机制1.2 递归能解决的问题02 迷宫回溯问题2.1 代码示例03 八皇后问题3.1 八皇后算法思路分析3.2 代码示例01 递归简单的说,递归就是方法自己调用自己,每次调用时传入不同变量, 递归有著姐编程者解决复杂的问题,同时可以使代码变得简洁。调用递归时需要有一个跳出递归的出口,否则会栈溢出1.1 递归的调用机制打印问题阶乘问题public class RecursionTest { .

2022-03-18 00:28:08 874

原创 【左神算法2】O(Nlog(N))排序 归并排序 和快速排序

目录01 master公式求递归时间复杂度02 归并排序2.1 算法步骤2.2 归并排序代码2.3 归并排序拓展: 小和问题03 快速排序3.1 算法步骤3.2荷兰国旗问题3.3经典快排01 master公式求递归时间复杂度master公式(也称主方法)是用来利用分治策略来解决问题经常使用的时间复杂度的分析方法,(补充:分治策略的递归解法还有两个常用的方法叫做代入法和递归树法,以后有机会和亲们再唠),众所周知,分治策略中使用递归来求解问题分为三步走,分别为..

2022-03-16 19:13:36 1072

原创 【左程云算法】时间复杂度(Olog(N^2))和冒泡排序 选择排序

01 时间复杂度分析常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。我的理解是这种操作最终的执行就是执行汇编命令,而汇编命令执行花费的时间都是有限的机器时钟时间,可以简单理解为执行一个相加指令,所以常数操作花费的时间是确定有限的,和数量级没关系。时间复杂度为一个算法流程中,常数操作数量的指标,常用O(读作 big O)来表示。具体来说,在常数操作数量的表达式中,只要有高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(..

2022-03-16 03:14:44 692

原创 【数据结构】java实现队列

目录01 队列概述02 队列的抽象数据类型描述03 队列顺序存储实现(非循环队列)04 循环队列的代码实现01 队列概述队列(Queue):具有一定操作约束的线性表 插入和删除操作:只能在一端插入,而在另一端删除。 数据插入: 入队列(addQueue) 数据删除:出队列(deleteQueue) 先来先服务 先进先出 02 队列的抽象数据类型描述类型名称:队列(Queue)数据对象集:一个有0个或多个元素的有穷线性表。操作集:长度为MaxSiz

2022-03-15 05:52:46 651

原创 【数据结构】java实现中缀表达式转后缀表达式计算器

01 后缀表达式介绍后缀表达式这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。这02 中缀表达式转后缀表达式中缀表达式转后缀表达式初始化两个栈,运算符栈s1和中间结果栈s22.1 代码实现因为String形式的算式不方便处理,首先将不带空格的中缀表达式添加到一个list里 // 将不带空格的中缀表达式转换成list public static List<String>...

2022-03-15 02:11:29 1902

原创 【数据结构】java栈实现简单计算器(中缀表达式)

使用栈完成计算一个表达式的结果:将中缀表达式转换成后缀表达式1.通过索引遍历表达式2.建立两个栈: 数栈和符号栈3.扫描到数字直接入栈(运算数相对顺序不变)4. 扫描到运算符:符号栈为空,则压栈符号栈不为空,扫描到的符号与符号栈栈顶元素进行比较,如果当前符号优先级大于栈中符号,则压栈小于栈顶符号优先级,则从数栈中pop两个数,符号栈中pop一个符号进行计算,计算结果入数栈,扫描到当前符号继续比较,如果大于则入栈...

2022-03-14 23:27:52 1214

原创 【数据结构】堆栈的顺序存储实现和链表存储实现

目录01 堆栈应用场景介绍02 什么是堆栈(Stack)2.1 堆栈的抽象数据类型描述2.2 栈的思路分析和代码实现2.2.1 数组实现栈2.2.2 单向链表实现栈01 堆栈应用场景介绍02 什么是堆栈(Stack)堆栈(Stack):具有一定操作约束的线性表只在一端(栈顶,Top)做插入、删除 插入数据:入栈(Push) 删除数据:出栈(Pop) 后入先出:Last In First Out(LIFO)2.1 堆栈的抽象数据类型描述.

2022-03-14 01:36:53 1645

原创 【单链表】java实现单链表反转及逆序打印

单链表反转// 单链表的反转 /* 1.定义一个节点 reverseHead 初始化为新的结点 2. 从头到尾遍历,每遍历一个就取出,放在新的链表的前端 3.遍历, 头插法 */ public static void reverse(Node head){ // 如果为空或只有一个节点, 无需反转 if(head.next == null || head.next.next == null){ .

2022-03-13 00:01:18 421

原创 【java数据结构】线性表(顺序表及链表)及其实现

01 引入: 多项式的表示方法一:顺序结构直接表示(数组)方法二:顺序存储结构存储非零项方法三: 链表结构存储非零项02 什么是线性表线性表”:由同类型数据元素构成有序序列的线性结构表中元素个数称为线性表的长度 线性表没有元素时,称为空表 表起始位置称为表头,表结束位置称表尾说明:线性表也就是数组的一种特殊储存方式:从头到尾依次储存数据。2.1 线性表抽象数据类型概述线性表操作接口描述 public...

2022-03-12 23:57:55 1742

原创 java实现 Maximum Subsequence Sum (最大子列和难版)

Output Specification:For each test case, output in one line the largest sum, together with the first and the last numbers of the maximum subsequence. The numbers must be separated by one space, but there must be no extra space at the end of a line. In ca.

2022-03-11 20:18:59 380

原创 【实际应用】java实现最大子列和问题

目录解法1 暴力法(比较所有子列和,取最大值)O(n^3)解法2:O(n^2) 不再做重复的加法解法3: 分而治之解法4 在线处理解法1 暴力法(比较所有子列和,取最大值)O(n^3)// 暴力求解,求出每个子列和,复杂度 三次方 public static int MaxSum(int arr[]){ // 求最大子列和, 先取子列并求和 int maxSum = 0; for(int i = 0; i &...

2022-03-09 04:54:17 371

原创 【数据结构】什么是算法(以选择排序为例)

目录01 算法的定义1.1 例:选择排序算法描述02 什么是好的算法2.1 算法效率分析2.2 复杂度分析小窍门01 算法的定义算法(Algorithm)一个有限指令集 接受一些输入(有些情况下不需要输入) 产生输出(一定产生输出) 一定在有限步骤之后终止 每一条指令必须 有充分明确的目标,不可以有歧义 计算机能处理的范围之内 描述应不依赖于任何一种计算机语言以及具体的实现手段 1.1 例:选择排序算法描述首先在未排序序列中找到最小(大)元.

2022-03-09 00:43:52 85

原创 【数据结构】基本概念

目录01 什么是数据结构02 空间的使用(多项式计算举例分析)03 算法效率04 结论01 什么是数据结构“数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法解决问题方法的效率,跟数据的组织方式有关解决问题方法的效率,跟空间的利用效率有关解决问题方法的效率,跟算法的巧妙程度有关02 空间的使用(多项式计算举例分析)写程序实现一个函数PrintN,使得传入一个正整数为N的参数后,能.

2022-03-08 23:41:36 260

原创 JavaSE从入门到进阶---------文章总目录

尚硅谷JavaSE视频笔记目录 1 编程入门硬件部分_DempseyLee的博客-CSDN博客_硬件编程 2 一 [Java基础]Java语言概述_DempseyLee的博客-CSDN博客 3 二 Java基础语法 变量和数据类型_DempseyLee的博客-CSDN博客 4 三【 java基础语法 】进制和运算符_DempseyLee的博客-CSDN博客 5 四 【java基础】 程序流程控制- 分支结构_DempseyLee的博客-CSDN博客 ..

2022-03-07 20:27:55 212

原创 【Java高级】Java反射机制

目录01 Java反射机制概述1.1 动态语言1.2 静态语言1.3 代码实例1.3.1 利用反射实现类的调用1.3.2 调用私有属性和方法02 理解Class类并获取Class实例2.1 Class类常用方法2.2 获取Class类实例的四种方法2.3 哪些类型可以有Class对象03 类的加载与ClassLoader的理解3.1 类的加载过程(了解)​3.2 什么时候会发生类初始化(了解)3.3 类加载器(了解)3.4 使用...

2022-03-07 19:36:14 210

原创 【Java高级】网络编程(TCP UDP 和 URL)

目录01 网络编程概述02 网络通信要素概述2.1 通信要素1:IP和端口号2.1.1 IP的理解与InetAddress类的实例化2.1.2 端口号的理解2.1.3 Socket类2.2 通信要素2:网络协议2.2.1 TCP和UDP网络通信协议的对比03 TCP网络编程3.1 基于Socket的TCP编程3.1.1 客户端Socket的工作过程​3.1.2 服务器程序的工作过程3.2 例题(传送消息、文件、交互)3.2.1例一: 客户端发送...

2022-03-06 23:19:05 277

原创 【Java高级】IO流概述

File类使用 + IO流分类 + 节点流 + 缓冲流 + 转换流 + 对象流 + Path Files类的使用

2022-03-06 20:54:27 326

原创 【Java高级】泛型(Generic)

目录01 为什么要有泛型1.1 泛型的概念1.1.1 为什么要有泛型02 在集合中使用泛型2.1 在List中使用泛型2.2 在Map中使用泛型03 自定义泛型结构3.1 自定义泛型类举例3.2 自定义泛型类的注意点3.2.1 泛型的声明​3.2.2 泛型的实例化​3.2.3 注意点3.2.4 代码演示OrderTest类3.3 继承中使用泛型3.4 自定义泛型方法04 泛型在继承上的体现05 通配符的使用5.1...

2022-03-06 06:28:33 271

原创 【Java】Java集合(Collection 、Map、Collections工具类)

01 集合框架概述集合,数组都是对多个数据进行存储操作的结构,简称Java容器。此时的存储,主要指内存层面的存储,不涉及持久化存储(指保存在文件里) 数组在存储多个数据方面的特点: .数组一旦初始化长度就确定了 数组声明的类型,就决定了元素初始化的类型 比如: Object[] arr1;String[] arr; 数组在存储多个数据的缺点 一旦初始化后,数组长度不可修改,不便于扩展。 数组中提供的方法有限,对于数据的添加,删除,插入等操作非常不便 获取数组中实际元素个

2022-03-06 01:33:34 294

原创 【Java高级】枚举类与注解

01 枚举类1.1 枚举类的理解类的对象只有有限个,确定的。举例如下:星期:Monday(星期一)、…、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)…Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡) 就职状态:Busy、Free、Vocation、Dimission 订单状态:Nonpayment(未付款)、Paid(已付款)、De

2022-02-25 05:49:36 180

原创 【Java高级】Java常用类:System、Math、BigInteger\BigDecimal

目录01 System类02 Math 类03BigInteger与BigDecimal3.1 BigInteger3.2 BigDecimal​01 System类import org.junit.Test;/** * 其他常用类的使用 * 1.System * 2.Math * 3.BigInteger 和 BigDecimal */public class OtherClassTest { @Test pub...

2022-02-25 00:23:16 114

转载 【Java高级】Java中的常用类 ---java比较器Comparable和Comparator

目录01 java比较器概述02Comparable自然排序举例2.1自定义类实现Comparable自然排序02 定制排序Comparator03Comparable接口与Comparator的使用的对比:01 java比较器概述Java中的对象,正常情况下,只能进行比较:==或!=。不能使用>或<的,但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。 如何实现?使用两个接口中的任何一个:Comparable或Com...

2022-02-25 00:12:51 168

原创 【Java高级】Java中的常用类-String

01 字符串相关的类1.1 String类的概述理解String的不可变性 * String:字符串,使用一对“”引起来表示。 * 1.String声明为final的,不可被继承 * 2.String实现了Serializable接口:表示字符串是支持序列化的。 * 实现了Comparable接口:表示String可以比较大小 * 3.String内部定义了final char[] value用于存储字符串数据 * ...

2022-02-24 22:08:05 139

原创 【java高级】一: 多线程

01、基本概念:程序、进程、线程程序(program):为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 进程(process):程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期 如:运行中的QQ,运行中的MP3播放器程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域 线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。 若一个进程同

2022-02-24 00:54:15 538

原创 十五【Java】异常处理

目录01 异常概述与异常体系结构1.1 异常分类02 常见异常03 异常处理一(try-catch-finally)3.1 finally的使用(可选的)04 异常处理机制二:throws + 异常类型4.1 代码举例4.2 抛出异常的原则4.3 手动抛出异常05 如何自定义异常类06 练习07 总结01 异常概述与异常体系结构异常在 Java 语言中 将程序执行中发生的不正常情况称为 异常 。开发过程中的语法错误和逻辑错误不是异常.

2022-02-18 01:51:53 551

原创 十四【Java】类的内部成员: 内部类

目录01 概述02 成员内部类03 局部内部类的使用01 概述当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类。在 Java 中,允许一个类的定义位于另一个类的内部,前者称为 内部类 ,后者称为 外部类 。02 成员内部类成员内部类 局部内部类(方法内、代码块内、构造器内) 3.成员内部类 * 》作为外部类的成员, * - 调用外部类的...

2022-02-17 07:24:05 142

原创 十三【Java】接口interface 的理解与应用

目录01 概述02 定义与使用03 举例04 接口和抽象类比较05 面试题01 概述一方面,有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java 不支持多重继承。有了接口,就可以得到多重继承的效果。另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有 is-a 的关系,仅仅是具有相同的行为特征而已。例如:鼠标、键盘、打印机、扫描仪、摄像头、充电器、MP3 机、手机、数码相机、移动硬盘等都支持 USB 连接。接口就是规范,定义的.

2022-02-17 06:52:01 310

原创 十二【Java】面向对象 抽象类与抽象方法

目录01 抽象类(abstract)1.1 抽象应用场景举例1.2 abstract注意点1.3 抽象类的练习1.4 抽象类的匿名子类1.5 抽象的具体应用:模板方法设计模式(TemplateMethod)1.6 抽象类的练习01 抽象类(abstract)随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类修饰类(抽...

2022-02-17 05:45:31 478

原创 十一【java】面向对象 关键字 final

目录01 final介绍1.1 final相关面试题01 final介绍* final:最终的* 1.final可以用来修饰的结构:类、方法、变量* 2.final用来修饰一个类:此类不能被其他类所继承。* 比如:String类、System类、StringBuffer类* 3.final修饰一个方法:final标记的方法不能被子类重写。* 比如:Object类中的getClass()。* 4.final用来修饰变量...

2022-02-17 03:15:16 261

原创 十【Java】面向对象 关键字static

目录01 Static关键字1.1 static 使用1.2 代码举例1.3 类变量 vs 实例变量内存解析1.4 static 修饰方法 (静态方法)1.5 static 练习1.6 单例设计模式1.6.1 饿汉式1.6.2 懒汉式1.6.3 单例模式优点和应用场景1.7 main方法使用说明02 类中的代码块2.1 代码块代码举例01 Static关键字1.1 static 使用当我们编写一个类时,其实就是在描述其对象...

2022-02-17 02:43:26 129

原创 九【JAVA】面向对象 (中)

01 面向对象特征之二:继承性 }..

2022-02-15 07:10:44 244

原创 项目二:java实现客户信息管理软件

项目二:客户信息管理系统 Java实现

2022-02-14 20:47:24 274

原创 八 【java基础】面向对象(上)

01 面向过程与面向对象02 类与对象2.1 Java 类及类的成员2.2 对象的创建与使用2.3 对象的创建和使用:内存解析03 类的成员之一:属性(filed)04 类的成员之二:方法4.2 对象数组的内存解析4.3 匿名对象的使用4.5 自定义数组的工具类4.6 方法的重载4.7 可变参数的形参4.8 方法参数的值传递机制4.8.1 基本数据类型的参数传递4.8.2 引用数据类型的值传递

2022-02-14 05:14:49 223

原创 七 数组中涉及的常见算法(排序和查找算法)

冒泡排序和快速排序java实现数组异常

2022-02-12 23:40:16 412

原创 六【Java 基础】数组的概述: 数组的定义与使用

一维和多维数组的定义与使用

2022-02-12 05:32:44 350

原创 使用IntelliJ IDEA创建并运行第一个Java程序

使用IntelliJ IDEA创建并运行第一个Java程序

2022-02-11 22:46:31 635

原创 【java】小项目:家庭记账软件的实现

家庭收账记录小程序的代码实现

2022-02-11 22:32:19 132

原创 五【java基础】程序流程控制 -循环结构

for循环 ; while 循环 ; do- while循环 以及break;continue使用介绍

2022-02-11 21:12:16 167

原创 四 【java基础】 程序流程控制- 分支结构

分支结构 if-else ;switch-case

2022-02-10 07:58:03 364

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除