- 博客(170)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 《尚硅谷数据结构》-插入排序
目录插入排序优化版本插入排序插入排序的基本思想:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它插入到有序表中的适当位置。public class InsertSort { public static void main(String[] args) { int[] arr = {101, 34, 119, 1}; insertSort(arr);
2021-03-18 23:52:34
330
1
原创 《尚硅谷数据结构》-冒泡排序和选择排序
目录冒泡排序选择排序冒泡排序冒泡排序(Bubble Sorting) 的基本思想是: 通过对待排序序列从前向后(从下标较小的元素开始) ,依次比较相邻元素的值(两两比较), 若发现逆序则交换, 使值较大的元素逐渐从前移向后部, 就像水底下的气泡一样逐渐向上冒。冒泡排序规则(1)一共进行 数组大小-1 次的大循环(2)每一趟排序的次数在逐渐减少(3)如果在某趟排序中,没有发生一次交换,则可以提前结束import java.util.Arrays;public clas
2021-03-15 19:13:43
482
原创 《尚硅谷数据结构》-排序算法总结与介绍
目录排序算法的介绍算法的时间复杂度例子举例平均时间复杂度和最坏时间复杂度空间复杂度排序算法的介绍排序算法是将一组数组,依指定的顺序进行排列的过程。排序算法分为两类:(1)内部排序:将需要处理的所有数据都加载到内部存储器(内存)中进行排序。(2)外部排序:当数据量过大时,无法全部加载到内存中,需要借助外部存储(如文件)进行排序。常见的排序算法分类:(8种常见-直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序)算法的时间复杂度 事后统计的
2021-03-14 14:53:00
502
原创 通过python读取txt文件和绘制柱形图
目录目的使用效果代码实现目的临床数据的记录时间和对应标签(逗号后面的数字)记录在txt文件里,要把标签转换为3类标签,并且计算出每个标签的分别持续时间,然后绘制成柱形图方便查阅。小难点分析:(1)txt的切割读取对应内容 (2)时间差计算txt文件如图:使用效果首先将原始txt转换为 左列新标签 右列持续时间绘制为柱形图为了直观,每次只最多显示 2个小时,同时横坐标还是按照临床的记录时间顺序。代码实现# -*- coding: utf-8 ...
2021-03-13 22:47:09
2541
2
原创 《尚硅谷数据结构》-递归
递归的概念递归就是方法自己调用自己,每次调用时传入不同的变量。递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。public class RecursionTest { public static void main(String[] args) { test(4); } public static void test(int n) { if (n > 2) { test(n - 1);
2021-03-11 22:49:15
486
原创 《尚硅谷数据结构》-栈
目录栈的概念栈的快速入门使用数组来模拟栈使用单向链表来模拟栈栈的概念栈(stack)是一个先入后出的有序列表。栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的特殊线性表。栈顶(Top):允许插入和删除的一端。栈底(Bottom):固定的一端,不变化。出栈-pop入栈-push所以最先放入的元素会到栈底,最后放入的元素会到栈顶。栈的应用场景子程序的调用: 在跳往子程序前, 会先将下个指令的地址存到堆栈中, 直到子程序执行完后再将地址取出, 以.
2021-03-10 20:01:28
598
原创 《尚硅谷数据结构》-双向链表和单向环形链表
目录双向链表单向环形链表双向链表双向链表要注意区分是否是尾节点的情况public class DoubleLinkedlistDemo { public static void main(String[] args) { //创建节点 HeroNode_2 hero1 = new HeroNode_2(1,"宋江","及时雨"); HeroNode_2 hero2 = new HeroNode_2(2,"卢俊义","玉麒麟
2021-03-09 23:29:30
351
原创 《尚硅谷数据结构》-单向链表面试题练习
目录求单链表中节点的个数查找单链表中的倒数第k个节点单链表的反转从尾到头打印单链表合并两个有序的单链表求单链表中节点的个数 //获取单链表的节点个数(如果有头节点,则不统计头节点) public int getLength(HeroNode headNode){ if(headNode.next == null){ return 0; } int length = 0; Her
2021-03-08 21:33:12
253
原创 《尚硅谷数据结构》-单向链表
目录链表的概念单向链表的应用举例第一种方法第二种方法链表的概念链表是有序的列表,但是在内存中的存储不一定是连续的。 单向链表的应用举例使用带 head 头的单向链表实现 – 水浒英雄排行榜管理完成对英雄人物的增删改查操作第一种方法添加(创建):先创建一个head 头节点, 作用就是表示单链表的头 后面我们每添加一个节点,就直接加入到 链表的最后遍历:通过一个辅助变量遍历,帮助遍历整个链表package queue;publi...
2021-03-07 23:32:14
401
1
原创 《尚硅谷数据结构》-数组模拟队列
目录队列的介绍数组模拟队列数组模拟环形队列队列的介绍队列是一个有序列表,可以用数组或链表实现。队列是先入先出,即先存入队列的数据,要先取出。数组模拟队列使用数组模拟队列示意图—第一个是初始队列,第二个是存数据(从上面进),第三个是取数据(从下面出)(但是这样是一次性的队列)MaxSize是队列的最大容量,变量rear会随着数据的输入而改变,而变量front会随着数据的输出而改变。// 使用数组模拟队列-ArrayQueue类class ArrayQueue{
2021-03-06 20:03:37
248
原创 《尚硅谷数据结构》-稀疏数组
目录一、数据结构二、稀疏数组的概念三、二维数组和稀疏数组的转换一、数据结构数据结构分为 线性结构 和 非线性结构线性结构:数据元素之间存在一对一的线性关系,例如数组、队列、链表和栈。线性结构又分为顺序存储和链式存储,其中链式存储中的元素不一定是连续的。非线性结构:二维数组、广义表、树结构、图结构。二、稀疏数组的概念稀疏数组的处理方法是:记录数组一共有几行几列, 有多少个不同的值 把具有不同值的元素的行列及值记录在一个小规模的数组中, 从而缩小程序的规模.
2021-03-05 23:00:02
300
原创 《黑马程序员》Java-反射
目录反射的基本概念获取字节码的三种方式反射获取构造方法反射获取成员方法反射获取成员变量反射的基本概念反射的定义:在程序运行过程中分析类的一种能力。正常情况:反射:反射的作用(1)分析类。加载并初始化一个类,查看类的所有属性和方法。(2)查看并使用对象。查看一个对象的所有属性和方法,使用对象的任意属性和方法。反射的应用场景1、构建通用的工具2、搭建具有高度灵活性和扩展性的系统框架3、逆向工程中常用反射获取字节码的三种方式.
2021-03-05 20:54:54
678
原创 《JAVA300集》网络编程_协议层-day25
目录网络编程-协议层1.UDP协议和TCP协议UDP协议TCP协议2.UDP编程简单数据-发送端简单数据-接受端基本类型-发送端基本类型的接收端在线咨询功能3.TCP编程概念介绍熟悉流程网络登录功能实现网络编程-协议层1.UDP协议和TCP协议UDP是用户数据报协议的简称,TCP是传输控制协议。两者都是传输层的重要的高级协议。UDP协议UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计..
2021-01-19 20:35:47
285
原创 《JAVA300集》网络编程_入门概念-day24
目录网络编码_入门1.基本概念2.IP地址3.端口4.URL5.爬虫基本原理6.传输协议网络编码_入门1.基本概念(1)网络编程强调的是底层,如TCP、UDP,网页编程强调的是应用,如JSP。(2)网络重要的两个元素:1.通讯协议 2.通信接口。(3)网络分层。1. OSI(Open System Interconnect)参考模型- 开放系统互连参考模型,一共分为7层(OSI参考模型-理论标准)发送数据的处理方式:是从高层到底层,逐层进行数据.
2021-01-17 22:33:44
203
原创 《JAVA300集》多线程_高级主题-day23
目录多线程-高级主题1.定时调度2.HappenBefore3.volatile4.单例模式5.ThreadLcoal6.可重入锁7.CAS多线程-高级主题1.定时调度import java.util.Calendar;import java.util.GregorianCalendar;import java.util.Timer;import java.util.TimerTask;/** 任务定时调度* */public class M
2021-01-15 22:40:05
498
1
原创 《JAVA300集》多线程_并发协作-day22
目录一、死锁死锁示例避免死锁二、线程协作-生产者消费者模式理论三、管程法四、信号灯法一、死锁死锁的概念:多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致多个线程都在等待对方释放资源,而都停止执行的现象。某一个同步块同时拥有"两个以上对象的锁"时,就可能发生“死锁”的问题。死锁示例package Thread;/** 死锁现象* */public class DeadLock { public static void
2021-01-13 22:28:45
314
原创 《JAVA300集》多线程_并发基础案例-day21
一、并发与线程同步并发:同一个对象的多个线程同时操作。并发有可能引发线程不安全的问题。线程同步是一种等待机制,用于解决线程不安全问题。当多个线程访问同一个对象,并且某些线程还想修改这个对象。这时候就可以通过线程同步方法。多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面的线程使用完毕后,下一个线程再使用。二、锁机制为了保证数据在多线程访问中的正确性,在访问时加入了锁机制(synchronized),当一个线程获得对象的排它锁,就可以独占资源,其他线程必须等待,这个线程
2021-01-12 23:26:29
384
原创 《JAVA300集》多线程_基础-day20
目录多线程静态代理设计模式Lambda表达式简化线程线程状态终止线程的典型方式暂停线程执行线程的联合线程的常用方法线程的优先级守护线程多线程静态代理设计模式之前讲通过Runnable接口启动多线程的操作,需要借助thread类的对象,这个thread类可以成为静态代理。静态代理:这个类是提前写好的,可以直接拿来用。动态代理: 这个类是在运行过程中,动态构建出来的,可以理解为临时构建出来的。/** 静态代理* 公共接口:* 1、真实角色
2021-01-09 23:14:54
552
原创 《JAVA300集》多线程_入门-day19
目录多线程前言进程和线程多线程创建的方法继承Thread类实现多线程的步骤通过多线程下载网络图片实现Runnable接口完成多线程 (最常用)共享资源(模拟抢票)实现Callable接口完成多线程(了解)多线程前言多线程是Java语言的重要特性,大量应用于网络编程、服务器端程序的开发等。我们可以上万人同时访问某个网站,也是基于网站服务器的多线程原理。进程和线程进程:程序是一个静态的概念,一般对应于操作系统中的一个可执行文件,比如:我们要启动war
2021-01-07 23:03:32
454
原创 《JAVA300集》IO流_CommonsIO-day19
目录CommonsIO前言FileUtils(1)下载工具包(2)尝试使用API(3)读取文件地址(4)读取文件内容(5)写出文件内容(6)拷贝CommonsIO前言(1)自己写的java程序是 class,多个class组成 jar,多个jar组成 组件,多个组件形成框架。小细节:组件是可以主动选择的,框架是被动的。(2)Apache软件基金会(ASF),是专门为支持开源软件项目而办的一个非盈利性组织,官方网站 www.apache.org。(3..
2021-01-07 16:44:19
527
原创 Pytorch和TensorFlow的softmax函数使用区别小记
【背景】Pytorch官方给的CNN模型中,在最后的分类层中并没有使用softmax函数、【异同】pytorch里面提供了一个损失函数:torch.nn.CrossEntropyLoss,这里面整合了softmax函数,如果使用这个交叉熵,则不应该在最后一层再使用softmax进行激活。这类似tensorflow中的tf.nn.softmax_cross_entropy_with_logits函数的功能,但是在命名上具有迷惑性。如果在绘制AUC时候,需要拿到每个类别的分类则在pytorch.
2021-01-04 23:43:09
826
1
原创 《JAVA300集》IO流_文件分割-day18
文件分割RandomAccessFile该类的实例支持读取和写入随机访问文件。(1)分块读取文件、指定位置读取剩余全部内容、指定位置读取剩余部分内容package Test_IO;/** 三种随机读取方法* */import java.io.IOException;import java.io.RandomAccessFile;import java.io.File;public class RandTest01 { public static void mai
2020-12-30 21:55:30
455
原创 《JAVA300集》IO流_处理流-day17
字节缓冲流字节缓冲流可以提高读写操作的效率,默认的缓冲区大小是8K。所有流的最底层都是节点流。JAVA的节点流和处理流节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader. 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。JAVA常用的节点流: 文 件 FileInputStream FileOutpu..
2020-12-29 23:19:34
2609
13
原创 《JAVA300集》IO流_装饰器-day16
目录IO基础装饰器模式感受装饰组成IO基础装饰器模式感受装饰:可以理解为类和类的关系Person p = new Person();Amplifier am = new Amplifier(p) //对象p装饰为对象ampublic class DecorateTest01 { public static void main(String[] args) { Person p = new Person(); p.say();..
2020-12-24 17:28:38
238
1
原创 《JAVA300集》IO流_基础-day15
目录IO流文件拷贝文件字符流字节数组流IO流文件拷贝将程序作为中转,读一段内容,然后写一段内容。字节流实现文件拷贝import java.io.*;import java.util.*;public class CopyFile { public static void main(String[] args) { String srcPath = "D:/Java/IO/abc.txt"; String destPath...
2020-12-23 16:25:51
305
1
原创 《JAVA300集》IO流_入门-day14
目录IO入门文件编码与解码四个抽象类文件字节输入流正式规范代码文件字节输出流IO入门文件编码与解码字符集:Java字符使用16位的双字节存储,实际文件存储的数据有各种字符集。编码(encode):字符 —》字节。解码(decode):字节 —》字符。不同的编码方式对应不同的字符集import java.io.UnsupportedEncodingException;import java.nio.charset.StandardCharsets
2020-12-22 22:50:33
366
原创 《JAVA300集》IO流_入门-day13
目录IO入门IO概念File类文件的创建统计文件夹的大小递归方法遍历文件夹获取文件夹大小IO入门IO概念IO指的就是输入/输出(Input/Output)。输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读”,读取外部数据)。输出(Output)指的是:程序输出数据给外部系统从而可以操作外部系统(核心含义是“写”,将数据写出到外部系统)。java.io包为我们提供了相关的API,实现了对所有外部系统的输入输出操作。重要的五类三接口如下.
2020-12-22 00:21:06
477
1
原创 《JAVA300集》容器_下-day12
目录容器二叉树二叉排序树 (左小右大)平衡二叉树红黑二叉树Set接口迭代器的使用Collections工具类案例-使用容器存储表格数据第一种思路第二种思路容器二叉树二叉树是树形结构的一个重要类型。二叉树(BinaryTree)是由一个节点及两根互不相交的左子树和右子树组成,(树可为空)。五种二叉树的形式:注:二叉树的左子树和右子树是严格区分并且不能随意颠倒的,图 (c) 与图 (d) 就是两种不同的二叉树。二叉排序树 (左小右大) ..
2020-12-20 18:12:13
463
1
原创 《JAVA300集》容器_中-day11
目录容器Map接口HashMap存数据HashMap取数据容器Map接口Map就是用来存储“键(key)-值(value) 对”的。 Map类中存储的“键值对”通过键来标识,所以“键对象”不能重复。键值对举例:1个手机号只能对应一个微信账号import java.util.HashMap;import java.util.Map;Map<Integer, String> m1 = new HashMap<>();public c
2020-12-19 22:58:18
213
1
原创 《JAVA300集》容器_上-day10
容器容器介绍数组就是一种容器,可以在其中放置对象或基本类型数据。数组的优势:数组是一种简单的额线性序列,可以快速地访问数组元素,效率高。数组的劣势:Java中的数组需要事先定义好容量(长度),不能随着需求的变化而变化,不灵活。在Java中说集合就是容器,英文是Collection。容器的接口层次结构图泛型泛型(Generics):可以帮助我们建立类型安全的集合。泛型的本质就是“数据类型的参数化”。 我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,.
2020-12-18 22:54:13
391
原创 《JAVA300集》异常机制-day9
目录异常机制背景介绍:异常类捕获异常声明异常异常机制背景介绍:在实际情况中,会遇到比如你写的某个模块,用户的输入不一定符合要求;打开文件指令,但文件已经损坏等。这些统称为异常:Exception,是指意外情况。异常机制的本质:当程序运行出现错误时,程序安全退出的机制Java是采用面向对象的方式来处理异常的。第一步:抛出异常。在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。第二步:捕获异常。JRE得
2020-12-16 11:55:00
462
原创 《JAVA300集》常用类-day8
目录Java常用类包装类Java常用类包装类Java中有包装类可以把基本的数据转化为对象,便于操作,如为了把基本数据类型存储到Object[]数组中等。java.lang包里有八种包装类,分别和基本数据类型一一对应,命名就是首字母大写(除了char-Character和int-Integer)。包装类的作用:基本数据类型、包装类对象、字符串之间提供相互之间的转化。public class TestWrappedClass { public static vo
2020-12-15 21:52:43
666
2
原创 生成符合SCI论文投稿要求的高清图方法
【问题背景】SCI论文通常对图片的分辨率要求很高,比如SCI 1区杂志NeuroImage要求图片的分辨率为100dpi以上。【解决方法】使用Adobeacroba软件 (以生成高清TIF格式图片为例)第一步:在PPT中组合好图片后,打印为PDF文件(高质量打印)第二步:在adobe acrobat 打开pdf,选择编辑PDF,并裁剪掉多余的空白部分第三步,保存为TIFF格式的图片,设置满足期刊要求的分辨率...
2020-12-08 16:40:24
4882
7
原创 《JAVA300集》多维数组和排序算法-day7
目录多维数组多维数组初始化存储表格数据冒泡排序基础的冒泡算法:优化的冒泡排序二分法查找多维数组多维数组初始化记住多维数组不是矩阵,以2维数组为例,数组的第2维的长度可以不一样。public class TestArray { public static void main(String[] args) { //定义2维数组(数组不是矩阵!) int[][] a = new int[3][]; a[0] =
2020-12-07 21:18:32
428
原创 《JAVA300集》一维数组-day6
目录数组的基础知识(1)数组的定义(2)数组的声明(3)数组初始化(4)数组的遍历数组的基础知识(1)数组的定义数组是相同类型数据的有序集合。其中每个数据称为一个元素,每个元素可以通过一个索引(下标)来访问。数组的三大要点:(1)数组的长度是固定的。数组创建后,大小是不可以被改变的。(2)数组的元素必须是同一类型。(3)数组类型可以是基本类型或者引用类型(引用类型的值是指向内存空间的引用,即地址)。数组变量属引用类型,数组对象本身是在堆中存储的。(2.
2020-12-06 18:52:51
445
原创 《Java300集》字符串和回调机制-day5
目录Java字符串和回调机制(1)字符串(String)(2)字符串常用方法(3)回调机制(4)组合模式(5)栈、堆、方法区小总结Java字符串和回调机制(1)字符串(String)public class TestString { public static void main(String[] args) { String str = "abc"; String str2 = "abc"; String str
2020-12-05 12:27:59
291
转载 Java中匿名内部类总结
匿名内部类转载地址:https://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html (Nerxious的博客园)匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void ...
2020-12-05 10:00:27
261
原创 《JAVA300集》面向对象-day4
目录Java面向对象进阶(1)继承(extends)(2)重写(override)(3)Object类(4)super关键字(5)封装(Encapsulation)(6)多态(polymorphism)(7)final关键字(8)抽象类和抽象方法(abstract)(9)接口(interface)(10)内部类Java面向对象进阶(1)继承(extends)关键词extends: class Student extends Person注:Java
2020-12-04 21:52:04
382
1
原创 《JAVA300集》面向对象基础-day3
JAVA面向过程基础(1)Java虚拟机(JVM)实际上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。Java虚拟机是Java能够实现跨平台编译的重要原因。Java虚拟机的内存分为三个区域:栈stack、堆heap、方法区method area。栈的特点- 1.栈描述的是方法执行的内存模型。2.每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)。3.栈的存储特性是“先进后出,后进先出”。
2020-12-03 15:21:07
576
EEGnet模型讲解PPT.pptx
2020-05-25
为什么用adblock无法屏蔽百度热点搜索?
2018-12-05
MATLAB直接只加一个@能不能提升函数调用速度?
2018-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人