自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据结构与算法-插入&希尔&归并(归并排序)

为啥把插入排序,希尔排序,归并排序纳入一类排序思想插入排序,希尔排序,归并排序这三种排序方式其实是依次优化的,希尔排序是插入排序的一种升级,归并排序是插入算法的升级,效率比希尔排序还好时间复杂度 : 插入排序 > 希尔排序 > 归并排序(ps :如果在学习这三个算法之前需要掌握 时间复杂度计算方式 递归 和 插入算法 链接如下1.递归&分治&回溯2.时间复杂度3.插入排序)归并排序的思想归并排序的过程分为 归 和 并归:将一个等待排序数组拆分成

2021-05-14 11:07:29 119

原创 数据结构与算法-插入&希尔&归并(希尔排序)

为啥把插入排序,希尔排序,归并排序纳入一类排序思想插入排序,希尔排序,归并排序这三种排序方式其实是依次优化的,希尔排序是插入排序的一种升级,归并排序是插入算法的升级,效率比希尔排序还好时间复杂度 : 插入排序 > 希尔排序 > 归并排序(ps :如果在学习这三个算法之前需要掌握 时间复杂度计算方式 递归 和 插入算法 链接如下1.递归&分治&回溯2.时间复杂度3.插入排序)希尔排序就是在插入排序的基础上,将一个数组按照一个增量分组,数组索引为n和

2021-04-29 18:30:16 159

原创 数据结构与算法-插入&希尔&归并(插入排序)

为啥把插入排序,希尔排序,归并排序纳入一类排序思想插入排序,希尔排序,归并排序这三种排序方式其实是依次优化的,希尔排序是插入排序的一种升级,归并排序是插入算法的升级,效率比希尔排序还好时间复杂度 : 插入排序 > 希尔排序 > 归并排序(ps :如果在学习这三个算法之前需要掌握 时间复杂度计算方式 和 递归 .链接如下1.递归&分治&回溯2.时间复杂度)插入排序生活中有很多类似于插入排序的行为,例如打扑克.比如我现在手上抓到一副牌 2,7,1,

2021-04-29 17:59:19 124

原创 数据结构与算法-递归思想

递归&分治&回溯递归不仅仅是一种编程代码的习惯方式,而更多的是一种分析业务逻辑的思维方式.有很多人在说到递归的时候,往往就是觉得递归不就是函数里面嵌套相同函数吗?就像下面这样 void fun(int a){ fun(a); }但是,很多同学在写一个递归的时候,是只知道能解决一个问题,但是不知道写递归还要注意内在几个重要性,下面我们就来说明这些个特性。注意,写递归一定要看重这种编程思想,而不是只局限于递归函数的写法一:分治分治就是在分析一个问题的时候

2021-04-25 11:23:28 208

原创 数据结构和算法-链表

代码地址单链表,双链表,循环链表代码下载地址,亲测有效单链表如果是头部插入法.尾部插入法,头部删除法,那么时间复杂度 就是O(1)循环链表怎么判断一个链表是循环链表呢?第一步:将两个节点nodeOne 和 nodeTwo 都指向头节点第二步:在while循环中,nodeOne 每次都跑一个节点 nodeOne = nodeOne.next, nodeTwo每次都跑两个节点 nodeTwo = nodeTwo.next.next第三步:如果nodeTwo追上了nodeOne,则为循环链表,如

2021-04-14 15:14:05 104 1

原创 数据结构与算法-数组

数组的特点1.一段连续的内存,只能存储相同类型的数据,只需要知道第一个索引的地址,就能快速找到其他数据优点: 查找数据快速,时间复杂度为O(1)缺点 添加,删除操作慢为啥数组的索引是从0开始?因为数组是连续的一段内存,而且数组的地址表示的是数组第一个数据的地址,比如有一个数组里面有n个数据array[0] 的地址是 100001,那么 array[1]的地址 就是 100001 + 数组类型的typeSize1,array[2]的地址 就是 100001 + 数组类型的typeSize2,

2021-04-12 21:51:37 73

原创 数据结构与算法-时间复杂度计算方式

概念1.时间复杂度是计算代码运行效率的重要指标,用大写的O表示2.常见的复杂度(按照从小到大) O(1) ,< O(logn) < O(n) < O(nlogn) < O(n^2 )O(x*n^2)3.在代码优化方面, O(1) , O(logn) ,O(n) ,O(nlogn) 的运行效果很好,基本优化的空间不是很大O(1) :O(1) 表示运行次数为常量 比如 只有一个 int a = 0 或者for 循环一个常量次数,即使这个常量非常大public voi

2021-04-12 15:59:15 1012

原创 设计模式-建造者模式

定义建造者模式就是在一个对象在创建的过程中动态的为对象的属性赋值,比如在创建一条sql语句的时候会添加很多不同的条件,不同的sql语句会有不同的条件public class BuildTest { public static void main(String[] args) { MysqlCommand command = MysqlCommand.build("aa","table") .andEquals("id","1")

2021-04-08 18:05:28 94

原创 设计模式-工厂模式

工厂模式定义一个创建对象的接口,让子类决定去创建哪一种类对象public class FactoryTest { public static void main(String[] args) { IObjectFactory iObjectFactory = new Product_1Creater(); iObjectFactory.create(); iObjectFactory = new Product_2Creater();

2021-04-01 17:27:12 53

原创 设计模式-观察者模式

什么是观察者模式观察者模式是一种一对多的依赖,多个观察者同时监听同一个对象,当对象发生状态改变的时候,会通知它的观察者们举例军营中有 将军 ,将军管着 步兵,骑兵,弓箭手等, 将军的指令会通知到军队中,那么,这样一来,步兵,骑兵,弓箭手就相当于 将军这个对象的观察者了,将军的命令下发后,收到命令的军队会做出相应的反应代码public class TestObserver { public static void main(String[] args) { Obser

2021-03-31 17:39:23 91

原创 设计模式 -策略模式

什么是策略模式简单的说,策略模式就是封装了方法组,能够在不同场景运用不同的方法场景举例比如玩游戏的时候,角色出生什么都没装备,只能用拳头打,然后随着剧情的发展会捡到木棍,刀枪等武器,觉得的进攻方式也会随之改变,这样一来,角色的不同进攻方式就可以看作一组策略代码示例角色有装备武器和进攻的两种行为/** * 角色 */class Boy{ /** * 初始化拳头 */ Boy(){ this.setiAttack( new Punches(

2021-03-31 15:43:28 70

原创 微服务框架-NACOS-基本结构

Nacos 基本数据结构(1.4.1版本)先了解nacos几个重要的概念Service:对应到nacos上的微服务(比如订单服务)Instance:每个微服务的实例(比如 订单服务器有两个实例 分别是 192.168.1.122 : 8081 和 192.168.1.123: 8082)可以在yml文件中配置的:namespace : 名称空间,隔离作用(当两个微服务的namespace不同则相互之间不能通信)group: 分组(官方文档上建议分组名相同,不同的分组微服务之间不能通信)c

2021-03-30 16:00:51 994

原创 设计模式-装饰着模式

装饰着模式一般在不修改原功能基础上去添加新的功能例如当美颜相机需要在原生相机的基础上添加一个美颜效果,但是不想去修改原生相机的功能然后在美颜效果的基础上再添加一个滤镜效果,不修改美颜效果,如下图所示示例代码/** * 拍照功能 */interface IPicture{ void takePicture();}/** * 原生相机 */class Phone implements IPicture{ @Override public void takeP

2021-03-26 15:20:34 74

原创 设计模式-适配器模式

啥玩意叫适配器模式呢当家庭电压220v太大不适合 手机或者电脑充电的时候,手机充电器和 电脑充电器就必须要 把 220v电压 转换成 自己能用的电压,那么这里手机充电器和电脑充电器就相当于一个电压的适配器,如下如适配器模式 - 对象适配器public class ObjectAdapater { public static void main(String[] args) { Voltage220V v = new Voltage220V(); IAda

2021-03-26 14:18:58 205 4

原创 JVM从源码分析类加载机制

流程图源码分析 launcher 的实例化流程1.AppClassLoader 和 ExtClassLoader 都继承URLClassLoader2.getLauncher() 获取的是一个 单例类 Launcher 对象,保证了每一个虚拟机只有一个 Launcher3…程序执行的结果说明了 自定义类 User的 类加载器 是 AppClassLoader, AppClassLoader的父加载器是ExtClassLoader , ExtClassLoader 的父加载器是 null,下面源码

2021-03-24 15:03:25 158

linkedList.rar

自己写的单链表,双链表,内附测试代码,亲测有效,循环链表,提供学习

2021-04-14

空空如也

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

TA关注的人

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