自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 latex关于括号换行的写法

latex关于括号换行的写法

2023-03-10 12:22:08 469

原创 两种选择类排序算法(简单选择排序,堆排序)

选择类排序:1.简单选择排序//不稳定 void SelectSort(int a[],int n){ int min,i,j,t; //n-1趟循环 for(i=0;i<n-1;i++){ //找出当前区间最小的关键字的位置 min = i; for(j=i+1;j<n;j++){ if(a[j]<a[min]) min=j; } if(i!=min){ t=a[min]; a[min]=a[i]; a[i]=t; } }

2020-07-16 20:01:25 349

原创 两种交换类排序(冒泡排序,快速排序)

交换类排序算法代码实现1.冒泡排序线性表冒泡排序flag优化void BubbleSort(int a[] ,int n){ //n-1次起泡 bool flag; for(int i=0;i<n-1;i++){ flag=false; for(int j=0;j<n-i-1;j++){ if(a[j]>a[j+1]){ //保证稳定性,等于不交换 flag = true; int t = a[j]; a[j] = a[j+1];

2020-07-16 19:57:17 319

原创 插入排序算法四种实现

插入排序算法实现直接插入排序不带哨兵版本void InsertSort(int a[],int n){ //对第二个元素到最后一个元素进行插入操作 int i,j,t; for(i=1;i<n;i++){ int t=a[i]; //通过对比前面的元素找到插入位置 for(j=i-1;j>=0&&a[j]>t;j--){ a[j+1] = a[j]; } //到j+1的位置进行插入 a[j+1]=t; }}直接

2020-07-15 17:44:37 549

原创 王道数据结构链表习题实现(持续更新)

1.链表定义及基本操作typedef struct LNode{ int data; struct LNode *next;}LNode, *LinkList;typedef struct LNode{ int data; struct LNode *next;}LNode, *LinkList;//遍历单链表void printLinkList(LinkList L){ LNode *p = L->next; while(p!= nul

2020-05-25 14:40:58 747

原创 王道数据结构顺序表习题代码实现

p19王道数据结构顺序表习题#include <stdio.h>int test1(int *a,int len){ int p = -1;//记录最小元素的位置 int value = a[0];//记录最小元素的值 for(int i=1;i<len;i++){ if(a[i]<value){ value = a[i]; p = i; } ...

2020-05-05 23:13:14 593

原创 [算法]Dijkstra算法模板(java)

注: 稠密图用邻接矩阵存储 稀疏图用邻接表时间复杂度o(n2)import java.util.Scanner;public class Main { static int n,m; static int N = 510; //邻接矩阵来存储图 static int [][] g = new int[N][N]; //已经求出最短路点的集合 static boolean...

2020-04-12 21:58:02 333

原创 有向图的拓扑排序算法(java实现)

有向图的拓扑排序算法(java实现)import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class TopologicalOrder{ static class Node{ int pos; int val; Node next; } static ...

2020-04-11 21:47:02 885

原创 图的邻接表存储及常见问题模板(java)

图的邻接表存储及常见问题模板(java)import java.util.Arrays;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main { static int N = 100010; static class Node{ ...

2020-04-08 11:17:25 325

原创 [算法]快速幂算法

快速幂算法 目的:求 a 的 k 次方 mod p 的结果。1<=a,k,p<=10^9用朴素做法需要o(n)时间复杂度,用快速幂算法降低到o(logn)的时间复杂度算法思想:反复平方的思想算法步骤:若要算 3^5mod 5如果我们这样求模的话,最多需要logk次预处理,就可以成功算出来结果java代码实现import java.util.Scan...

2020-04-05 16:29:16 362

原创 [算法]最大子阵(前缀和)

import java.util.Scanner;public class Main{ static int N = 1005; static int [][] a = new int[N][N]; static int [][] s = new int[N][N]; static long res = Long.MIN_VALUE; public static void ma...

2020-03-21 17:44:09 148

原创 基于websocket和springboot2.0 web实时聊天企业级完整项目【开源!】

项目开发目录1.功能介绍1.功能介绍

2020-03-14 11:38:59 635

原创 [Hadoop] 图解HDFS读写流程(详细)

Hadoop之HDFS读写流程分析一.写流程分析写流程各步骤详细说明:通过Cilent客户端向远程Namenode发送RPC(远程调用)请求① Namenode 会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;② Namenode允许上传文件。同时把待上传的文件按照块大小(128M...

2020-03-04 19:47:42 1166 3

原创 [Hadoop] 递归的拷贝本地文件到HDFS文件系统中

递归的拷贝本地文件到hdfs文件系统中//递归的拷贝本地文件到hdfs文件系统中 @Test public static void copyFileToLocal(String filename) throws URISyntaxException, IOException, InterruptedException { File f = new File(f...

2020-03-04 17:25:32 739

原创 数据结构 堆排序模板

堆支持的操作:1.插入一个数2.求集合当中的最小值3.删除最小值4.删除任意一个元素5.修改任意一个操作import java.util.Scanner;public class HeapSort{ //堆排序 static int N = 10010; static int [] h = new int[N]; static int siz...

2020-02-15 18:52:27 156

原创 基础算法——一维数组离散化(acwing802)

假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行 n 次操作,每次操作将某一位置x上的数加c。近下来,进行 m 次询问,每个询问包含两个整数l和r,你需要求出在区间[l, r]之间的所有数的和。输入格式第一行包含两个整数n和m。接下来 n 行,每行包含两个整数x和c。再接下里 m 行,每行包含两个整数l和r。输出格式共m行,每行输出一个询问中所求的区间内数字和...

2020-01-26 18:34:07 641

原创 数据结构-线段树 单点修改,区间查询

线段树构造:public class xianduanshu { static int [] arr = {0,1,2,3,4,5,6,7}; static class Tree{ int l; int r; int sum; Tree left; Tree right; public T...

2020-01-25 15:02:25 145

原创 数据结构-树状数组的原理及应用

1. 树状数组的作用: ①区间查询 ②单点修改2.定义 设树状数组为tr[N] 1<=i<=N2.1 tr[i] 存储的是 (i - lowbit(i) , i ] 区间的和 例图 lowbit(i) :设k为i的二进制表示末尾的0的个数 , lowbit(i) 表示: 2的k次方 函数编写如下: lowbit(int i){ return i & -i;...

2020-01-22 15:15:20 339

原创 常见排序算法模板-基础算法1

快速排序思想:分治先按照选定基准值x排序 左边一段小于等于x 右边一段大于等于x 后进行区域划分算法时间复杂度最坏o(n2) 最好(nlogn)import java.util.*;//快速排序模板class Main{ static int N = 100010; static int[] arr = new int[N]; public static void...

2020-01-22 11:00:57 165

原创 [java]深入理解equals和hashcode方法的区别和联系

"==”,equals方法,hashcode方法的区别和联系1 equals() 的作用是什么?​ equal类是Object类的方法,Object是所有类的基类。​ 在我们没有重写equals方法时,equals()的作用是比较两个对象地址是否相等,我们看看equal()的源码 public boolean equals(Object obj) { r...

2019-12-01 23:17:50 181

原创 用两个栈来实现一个简单的计算器

思路1.确定符号的优先级 # 0 ,+ - 1,* / 2,2.向栈中添加2.1如果是数字,直接进操作数栈2.2如果是操作符2.2.1 如果当前操作符号的优先级大于栈顶元素的操作符的优先级,直接进栈2.2.2 如果当前操作符号的优先级小于或等于栈顶元素操作符的优先级,操作符栈退1次,操作数栈退2次,进行对应的操作后,把获得的结果压栈其中设置的#操作符的优先级为0,优先级最低,优先...

2019-12-01 12:05:30 599

原创 [java]深拷贝和浅拷贝的区别介绍

为什么要使用Clone?深拷贝和浅拷贝的区别有哪些?​ 1.首先明白什么是引用?​ 当我们在创建对象时,首先在堆区进行内存的分配,然后调用构造方法进行初始化。对象的实例保存在堆中,对象的引用保存在栈中。引用就好像c语言中的指针一样保存着对象实例的地址,我们实际通过操作对象的引用来操作对象。​ 2. clone帮助我们解决了什么问题?为什么要进行clone? class Person...

2019-11-29 13:28:13 615

原创 [Java]重新梳理面向对象的三大特性

1.什么是面向对象?谈谈你对面向对象的理解?​ ①面向对象是一种编程思想,在面向对象这种编程思想出现以来,主流的是以c语言为首的面向过程的语言,更多的是按照计算机处理事务的思想来编写代码。在现实生活中的任何物体都可以归为一类事物,而每一个个体的就是这一类事物的实例。面向对象的编程是以消息为驱动,以对象为中心。程序 = 对象 + 消息​ ② 面向对象主要有三种特性。​ 1.封装​ 封装就是...

2019-11-28 22:52:36 102

原创 大型电商项目数据库表设计

1.Spu和Sku的概念SPU:Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集SKU:Stock Keeping Unit(库存量单位),SPU商品集因具体特性不同而细分的每个商品比如说小米8手机是Spu,红色的128g存储空间,6g内存的小米8是Sku。Spu是一组商品集合,Sku是能根据条件在Spu种唯一确定的一件商品如本例中的...

2019-11-24 16:26:45 5773 1

原创 为什么在JDBC连接数据库时,要通过Class.forName来加载驱动

一,平时我们加载数据库驱动通常会这样写 String url = "jdbc:mysql://127.0.0.1:3306/mydb"; String username = "root"; String password = "redhat"; Class.forName("com.mysql.jdbc.Driver"); Con...

2019-11-14 14:16:21 1046 1

原创 [java]强引用、弱引用、软引用和虚引用

背景在jdk1.2以前,java对引用的定义和传统,只有引用和非引用之分。这种定义很纯粹,但是太过狭隘,一个对象在这种定义下,只有被引用或者没有被引用这两种状态,对于如何描述一些“食之无味,弃之可惜”的对象就显得无能为力。这时候推出了一种新的机制,强引用,弱引用,软引用和需虚引用1.强引用(Stong Reference)最普通的引用 Object o = new Object()...

2019-10-28 12:27:23 164

原创 [Java]垃圾回收面试知识点总结

GC相关1.对象被判定为垃圾的标准?没有被其他任何一个对象引用引用计数算法阐述判断对象的引用数量来决定对象是否可以被回收每个对象实例都有一个引用计数器,被引用则+1,完成引用-1任何引用计数为0的对象实例可以被当作垃圾来收集优点:执行效率高,程序执行受影响较小缺点:无法检测出循环引用的情况,导致内存泄漏可达性分析算法通过判断对象的引用链是否可达来决定对象是否可以被...

2019-10-21 15:21:54 226

原创 [Java]虚拟机面试知识点总结

Java虚拟机jvm的四大部分ClassLoader:根据特定格式,加载class文件Execution Engine:对命令进行解析Native Interface: 融合不同开发语言的原生库 native方法(class.forName())Runtime Data Area:JVM内存空间结构模型Jvm如何加载.class文件通过Class Loader符合其格式要求的 ...

2019-10-18 23:48:02 185

原创 [java]ForkJoinPool框架的使用

ForkJoinPool分支/合并框架在必要的情况下,讲一个大任务,进行拆分(fork)成若干个小任务(拆到不可拆为止),再将一个个小的任务运算的结果进行join汇总。工作窃取的背景分支/合并框架,里面提到了ForkJoinSumCalculator会将一个任务分成很多个子任务,一般来说分出大量的子任务是个好的选择。因为在理想的情况下,划分并行任务时,应该要让每个任务都用完全相同的时间完...

2019-10-18 12:46:03 159

转载 [java]一篇故事看懂可重入锁机制

1、听故事把知识掌握了在一个村子里面,有一口井水,水质非常的好,村民们都想打井里的水。这井只有一口,村里的人那么多,所以得出个打水的规则才行。村长绞尽脑汁,最终想出了一个比较合理的方案,咱们来仔细的看看聪明的村长大人的智慧。井边安排一个看井人,维护打水的秩序。打水时,以家庭为单位,哪个家庭任何人先到井边,就可以先打水,而且如果一个家庭占到了打水权,其家人这时候过来打水不用排队。而那些没有抢占...

2019-10-17 17:19:24 169

原创 [java]ReadWiterLock 读写锁的使用介绍

读写锁允许访问共享数据时的并发性高于互斥锁所允许的并发性。 它利用了这样一个事实:一次只有一个线程( 写入线程)可以修改共享数据,在许多情况下,任何数量的线程都可以同时读取数据(因此读取器线程)。 从理论上讲,通过使用读写锁允许的并发性增加将导致性能改进超过使用互斥锁/** * * ReadWiterLock 读写锁的应用 * * 写写互斥,写读互斥 * * 读读不互斥 ...

2019-10-17 16:23:48 163

原创 [java]使用Lock Condition手撕大厂多线程面试题

某大型互联网公司面试题,开启三个线程,循环二十遍打印A五次,打印B十次,打印C二十次。public class LockDemo { public static void main(String[] args) { final Print p = new Print(); new Thread(new Runnable() { public void run() { fo...

2019-10-17 15:11:32 186

原创 [java]深入理解生产者消费者模型

生产者消费者模型不必多说,在操作系统课和java多线程都已经提到过。而你是否真的懂wait,notify,notifyAll使用的细节呢?下面我们一起来探究一下这是一个典型的生产者消费者模型这样写是完全符合线程安全的!这段代码很容易引申出来两个问题:一个是wait()方法外面为什么是while循环而不是if判断,另一个是结尾处的为什么要用notifyAll()方法,用notify()行吗?...

2019-10-16 18:05:44 189

原创 [java]FutureTask手撕大厂多线程面试题

某大型电商Java面试题:一主多从多线程协作 问:客户请求下单服务(OrderService),服务端会验证用户的身份(RemotePassportService), 用户的银行信用(RemoteBankService),用户的贷款(RemoteLoanService)。为提高并发效率,要求三项服务验证工作同时进行,如其中任意一项验证失败,则立即返回失败,否则等待所有验证结束,成功返回。要求Jav...

2019-10-16 12:53:39 537

原创 [java]CountDownLauch实战演练

闭锁:一种同步工具类,可以用来确保某些活动指导其他活动都完成后才执行。CountDownLatch:一种闭锁的实现,可以使一个或多个线程等待一组事件发生。import java.util.concurrent.CountDownLatch;/** * CountDownLauch的测试 * 选手赛跑游戏: * 当比赛开始时, * 多线程(选手)开始启动 * 当所有选手跑完后, ...

2019-10-16 12:33:27 440

原创 [java]手写模拟CAS算法

CAS算法是什么?CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。CAS是乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变...

2019-10-15 19:24:52 757 1

原创 [java]volatile关键字作用和用法

一,volatile关键字的作用保持多个线程对共享数据操作内存的可见性禁止指令重排序二,什么是内存可见性?1.为什么会产生内存不可见性?在硬件通过cache来提高访存的效率在学习计算机组成原理中我们曾了解过主存和高速缓存cache,为了解决CPU速度和主存速度不匹配。于是产生了高速缓冲存储器cache。CPU和cache的数据交换:当CPU读取内存中的一个字时,便发出此字...

2019-10-15 15:00:20 274

原创 Springboot开发小而美的博客

Spring Boot开发小而美的个人博客个人博客功能:技术组合:后端:Spring Boot + JPA + thymeleaf模板数据库:MySQL前端UI:Semantic UI框架工具与环境:IDEAMaven 3JDK 8Axure RP 8课程内容模块:需求分析与功能规划页面设计与开发技术框架搭建后端管理功能实现前端管理功能实现你能学得什...

2019-10-12 10:40:50 1636 1

原创 leetcode47 全排列去重实现

判重的全排列递归实现1.主要思想:首先把数组sort一下,使相同的元素相邻2.保证相同的数字相对顺序不改变,就不会出现重复的可能解决办法:在递归函数中检查当前数字是否和前面的数字相等,如果相等且前面的数字被访问过,这个数字才能用如果不符合以上条件,说明不可用,跳过该数字class Solution { List<List<Integer>> res ...

2019-10-08 21:32:45 143

原创 pyinstaller 打包python文件成exe的步骤

首先需要生成一个python文件的.spec文件pyi-makespec -w test.py,在.spec文件中的# -*- mode: python -*-import syssys.setrecursionlimit(1000000)block_cipher = Nonea = Analysis(['main.py'], pathex=[...

2019-09-27 20:15:47 293

exam.py

exam.py

2022-01-21

空空如也

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

TA关注的人

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