自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】输入输出及格式控制

总结了几种输入输出和格式控制方法

2023-08-31 20:20:22 696

原创 【安全】浅谈信息安全

文章浅谈了笔者对信息安全及其发展的理解,不当之处还请批评指正!

2023-08-14 12:56:05 1241

原创 【Python数据分析】Python中axis的理解

axis用来为超过一维的数组定义属性。理解时从数据变化的方向入手!以二维数据为例,在二维数据中,1表示横轴,方向从左到右;0表示纵轴,方向从上到下从数轴的方向入手,理解数据变化,axis属性的作用就显而易见了!数据预处理在进行数据预处理时,axis=1,表示数组的变化是横向的,而体现出来的是列的增加或者减少;当axis=0时,数组的变化是纵向的,体现出行的增加或减少。【1—横向—列;0—纵向—行】data.drop(‘y’,axis=1) #横向变化删除列x=data.drop([

2023-06-27 17:23:40 1049

原创 浅谈IDEA常用快捷操作

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。在业界被公认为“最好的java开发工具”。本文整理了IDEA中常用的快捷操作:一、常用快捷键1.Ctrl + D 复制整行:2.Ctrl + Y删除整行:3.导包选择:Alt + Enter4.修改类名:选中类名,按Shif + F65.单行注释:Ctrl + /6.多行注册: Ctrl + Shif + /7.对某些行代码加 try catch : Ctrl + Alt + T8.添加构造方法及GetSet方法

2022-02-23 17:14:08 761

原创 【Python机器学习】浅谈监督学习及经典算法

浅谈监督学习及经典算法的Python实现

2022-02-23 11:10:10 806

原创 【Python机器学习】 使用scikit-learn中train_test_split函数实现对模型的训练

使用scikit-learn中train_test_split函数构建并训练模型

2022-02-23 11:04:26 1981

原创 【Python机器学习】KNN分类算法 ——KNeighborsClassifier函数实现

构造函数 KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1, **kwargs)n_neighbors: 默认值为5,表示查询k个最近邻

2022-02-23 10:59:14 4410

原创 浅谈JDBC操作MySQL数据库实现事务管理

JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。简单来说,JDBC就是用Java对数据库实现一定操作的API。下面,本文将浅谈用Java语言操作数据库进行事务管理的步骤。JDBC操作数据库进行事务管理1. 建立到特定数据库的连接Connection con =DriverManager.getConnection(url,user,pwd);此处的url,user,pwd建议在前面以字符串类型设定好,在DriverManager.

2022-02-22 13:09:12 918

原创 【Java】字符串处理StringTokenizer类

(参考资料:https://blog.csdn.net/daicooper/article/details/80788596)Java 类库的 java.util 包中包含一个用于进行字符串词法分析的类 StringTokenizer ,目的是将对字符串进行分解的方法进行封装,以简化应用程序设计过程中的工作量。StringTokenizer的构造方法StringTokenizer 类提供3中形式的构造函数:StringTokenizer(String str)StringTokenizer(Str

2021-12-24 09:31:41 387

转载 【Java】 Eclipse 中类的继承创建的两种方式

eclipse 中类的继承创建有两种方式

2021-12-23 19:39:48 4309

原创 【Java】生成随机数的两种方法

一、 Math类的random()方法Math类的random()方法可以生成大于等于0.0、小于1.0的double型随机数。//产生一个[0,1)之间的随机数Math.random();Math.random()方法语句基础上处理可获得多种类型、或任意范围的随机数。产生指定范围的随机数(m*~*n之间):【两种形式均可】Math.random()*(n-m)+m;Math.random()*(n+1-m)+m此外,可以借助啊ASCII码生成随机字符!1.随机生成a~z之间的字符

2021-12-22 17:25:25 12810

原创 【Java】不用Date和Calendar类计算两日期相差的天数

问题描述输入两个日期,输出他们相差的天数输入格式:年 月 日(以空格分隔)输出:两日期相差的天数解决方案求相差多少天,必然要对日期做差!但如果两个日期所在月不同,或年不同时,对年月日单独做差将会很麻烦,因此,不妨从该日期在该年的第几天的角度出发进行做差计算!对于不在同一年的日期,只需将年份相差的天数和月、日相差天数求和即可!参考代码在程序中,用到了两个类(存储日期的类D和主类Day)。为保证函数的调用,笔者将所有的函数都声明为静态(static);如果不声明静态,可以通过主类的对象调用自定义

2021-12-22 11:37:27 653

原创 【数据结构】 排序算法

对几类排序算法简要概括所有排序最终目标均为得到升序序列!

2021-12-20 18:39:40 504 2

原创 【数据结构】堆排序

学习心得

2021-12-20 17:56:55 656

翻译 C++中的swap函数

IntroductionSwapping is a simple operation in C++ which basically is the exchange of data or values among two variables of any data type. Considering both the variables are of the same data type.The function and its workingThe swap() function in C++, fr

2021-12-20 17:14:27 4191

原创 【Java】Java日期时间类

Java中获取当前日期可以通过Date或Calendar类的对象实现,本文整理了两个类的常用方法及其功能的实现。Date类1.获取当前日期时间——创建Date类对象Date currentDate = new Date();2.日期先后比较currentDate.before(newDate); //判断currentDate是否在newDate之前,返回布尔值currentDate.after(newDate); ////判断currentDate是否在newDate之前,返回布尔值

2021-12-19 20:34:08 1394

原创 【Java】String类常用方法

整理了几个String类的常用方法。1.得到字符串长度——通过字符串对象调用length()2.取指定位置字符——通过字符串对象调用charAt(int index) String s1 = "abcdefg"; System.out.println("字符串的长度:"+s1.length()); System.out.println("获取串4位置的字符:"+s1.charAt(4));3.转字符数组——toCharArray()使用String.toCharArray()(返回值为c

2021-12-19 19:06:20 412

原创 【Java】Java文件读写

两类文件读写方法

2021-12-19 13:32:13 943

原创 【Java】Arrays类的常用方法

填充数组——Arrays.fill()将数组初始化为某个数时可用此方法。数组排序——Arrays.sort()Arrays类静态方法sort,可传入要排序的数组进去排序常用两种方法:1.指定位置排序public static void sort(DataType a,int fromIndex,int toIndex)2.全部数据排序public static void sort(DataType a)1.数字排序 int[] intArray = new int[] {

2021-12-17 15:37:34 457

原创 【Java】Character类及其主要方法

Character 类在对象中包装一个基本类型 char 的值,对单个字符进行操作。创建Character类对象使用操作方法前需要使用Character的构造方法创建一个Character类对象Character ch = new Character('a');一般情况下,Java编译器会自动创建一个Character对象。例如,将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。// 原始字符 'a' 装

2021-12-17 15:36:55 351 1

原创 【Java】将String转换为char的两种方法

使用Java处理字符串中的部分数据,有时不如对字符数组处理起来方便,为此,笔者结合实际操作,介绍两种类型转换的方法。从字符串中提取单一字符使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char。将字符串全部转换为字符数组使用String.toCharArray()(返回值为char[])可以得到将包含整个String的char数组。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。测试代码public class Te

2021-12-12 17:19:46 27776 2

原创 【Java】ArrayList实现集合运算

集合Arraylist存储基本类型数据,必须使用基本类型包装类。例如,集合A={1,2,3,4},集合B={1,3,5,7,9,11}.完成集合的交集补集,差集运算。import java.util.*;public class Jihe { public static void main(String[] args) { List<Integer> A=new ArrayList<Integer>(); List<Integer> B=new A

2021-12-03 15:34:38 299

原创 【数据结构】浅谈二叉排序树

二叉排序树可以对一组数据进行查找、插入、删除操作。简介二叉排序树要么是空二叉树,要么具有如下特点:如果其根结点有左子树,那么左子树上所有结点的值都小于根结点的值;如果其根结点有右子树,那么右子树上所有结点的值都大小根结点的值;二叉排序树的左右子树也要求都是二叉排序树。简言之,二叉排序树的左子树、根节点、右子树中的数据依次递增!1.左子树的数据比根结点数据小2.右子树的数据比根结点数据大实现过程使用C++面向对象实现,使用二叉树的存储结构结构体声明struct BiNode{ int

2021-12-01 15:10:59 2745

原创 【数据结构】浅谈图常用的两种存储结构

写程序时,需要一定的结构存储图,本文将介绍两种图常用的存储结构:邻接矩阵和邻接表。邻接矩阵邻接矩阵是通过二维数组对图中边的信息(包括边依附的两个顶点以及边的权值)进行存储。邻接矩阵数组的大小取决于图中顶点的数量。准备工作使用邻接矩阵前,需要开一个一维数组数组,以存储各个顶点的数据(数组的编号与邻接矩阵中顶点的编号一一对应)构造函数邻接矩阵建图的构造函数要完成的三件事:1.存储图的基本信息(顶点数、边数)2.存顶点3.存边(构造邻接矩阵)MGraph(DateType a[],int

2021-11-24 11:38:21 2603

原创 【数据结构】拓朴排序

基本知识AOV网络AOV网(activity on vertex network)本质上是有向图,表示一个有一定规模的“工程”。图中的顶点表示工程中的不同活动,图中的边表示各项活动之间的先后顺序关系(制约关系)。拓扑序列有向图G=(V,E)具有 n 个顶点,从顶点 vi到 vj 有一条路径,顶点序列 v0, v1, …, vn-1中顶点 vi 必在顶点 vj 之前,此时的顶点序列 v0, v1, …, vn-1 称为一个拓扑序列。显然,这个序列可以让网中所有存在的前驱和后继关系都能得到满足!显然,

2021-11-23 17:16:36 1090

原创 【数据结构】最短路径问题之Floyd算法

解决最短路径问题,常用到两个算法:Dijkstra(迪杰斯特拉)算法和 Floyd(弗洛伊德)算法。本文将简要介绍我对弗洛伊德算法的理解。Floyd算法该算法用于解决任意顶点之间的最短路径问题。如果要让任意两点(例如从顶点a点到顶点b)之间的路程变短,只能引入第三个点(顶点k),并通过这个顶点k中转即a->k->b,才可能缩短原来从顶点a点到顶点b的路程。因此,该算法的基本思路就是加点并比较所求两点直达路径与加点后中转路径的长度,取最短的作为最终结果!显然,*在加点过程中,每个顶

2021-11-21 17:31:44 1613 1

原创 【数据结构】最短路径问题之Dijkstra算法

Dijkstra算法是求解图中单源点最短路径的一种算法,其实现过程类似于Prim算法。顾名思义,“单源点最短路”说明实现功能需要指定源点,并且该算法仅支持各边权值为正数的情况!基本知识路径第一个点称“源点”,最后一个点称”终点“。最短路径指的是两个顶点间经历边数最少的路径。基本思路将顶点集合V分成两个集合,一类是生长点的集合S(包括源点和已经确定最短路径的顶点);另一类是非生长点的集合 V-S(包括所有尚未确定最短路径的顶点),并使用一个待定路径表,存储当前从源点V到每个非生长点的最短路径。存储

2021-11-21 13:38:36 1230 2

原创 【数据结构】最小生成树之Kruskal算法

Kruskal算法可以形象地称为“加边法”,也就是说,该算法通过处理边,最终得到最小生成树。存储结构边集数组:由两个一维数组构成。一个是存储顶点的信息;另一个是存储边的信息。边数组的实现用到结构体!边数组每个数据元素由一条边的起点下(begin)、终点下标(end)和权(weight)组成。struct Edge{int begin, end, weight;};顶点数组使用普通一维数组基本思想图中每个顶点各自构成一个连通分量,然后按照边的权值由小到大的顺序.依次考察边集E中的各

2021-11-19 20:00:21 3338 1

原创 【数据结构】图的存储结构——边集数组

图的存储结构之边集数组边集数组:由两个一维数组构成。一个是存储顶点的信息;另一个是存储边的信息。边数组的实现用到结构体!边数组每个数据元素由一条边的起点下(begin)、终点下标(end)和权(weight)组成。struct Edge{int begin, end, weight;};顶点数组使用普通一维数组以上图为例,边集数组的存储形式为:...

2021-11-19 19:21:22 1640

原创 【数据结构】最小生成树Prim算法

概况最小生成树是是原图的极小连通子图,是最小权重生成树的简称。其特点是:图中包含原图中的所有 n 个结点,并且有保持图连通的最少的边。求最小生成树有两种算法,分别是:Kruskal(克鲁斯卡尔)算法、Prim(普里姆)算法。本文将介绍笔者对Prim算法的理解。Kruskal算法将在后续文章介绍。Prim算法该算法需要用邻接矩阵存储图(使用edge数组记录边的权值,vertex数组存储顶点数据)。class MGraph{public: MGraph(DataType a[ ], in

2021-11-19 17:06:32 2495

原创 【数据结构】并查集

概况并查集主要用于解决一些元素分组的问题。其操作的对象是集合(通过结构数组存储集合中每个元素的信息,包括:数据及归属集合)。它管理一系列不相交的集合,顾名思义,并查集的功能是对集合中的元素进行查找和合并:合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。集合元素的存储结构集合中每个元素的数据由两部分构成,结构体声明为:struct Elem{ char data; //集合存储字符型数据 int par

2021-11-17 17:51:33 202 2

原创 【Java】浅谈Swing概况及简单窗口的构建

内容整理于:http://blog.csdn.net/xietansheng/article/details/72814531简介Swing 是 Java 为图形界面应用开发提供的工具包,包含了构建图形界面的各种组件,如: 窗口、标签、按钮、文本框等。Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。Swing组件图形界面由各种不同类型的“元素”组成,例如: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”统一被称

2021-11-13 17:19:59 671

原创 【数据结构】 图的邻接表

邻接表是图的另一种存储结构(使用链表的思想)。该方式的基本思路:顶点表后指向邻接表,邻接表中依次为当前顶点的邻接点准备工作与邻接矩阵类似,在构造邻接表之前,需要存储各个顶点的信息,在这里使用结构体存储。因此,在构造邻接表之前,需要先定义两个结构体:邻接表结构体、顶点结构体。【其中,都需要用到指向邻接表的指针!】struct EdgeNode{ //邻接表 int ad; //记录邻接点的位置 EdgeNode *next; //指向邻接表的指针};struct VertxNod

2021-11-12 17:17:08 4612

原创 【数据结构】 图的邻接矩阵

在图的存储方法中,邻接矩阵通过数组对图的信息进行存储。基本思路使用邻接矩阵前,需要开一个一维数组数组,以存储各个顶点的数据(数组的编号与邻接矩阵中顶点的编号一一对应);同时,还需要一个标记顶点是否被访问的一维数组,用来表示图中顶点是否被访问。【其中,标记顶点是否被访问的数组使用全局变量】邻接矩阵为n*n方阵(二维数组),用来表示图中顶点间的连通关系(两顶点连通,数组值为1;两顶点不连通,数组值为0)。因此邻接矩阵edge数组的大小取决于图中顶点的数量。邻接矩阵构造前,需要对标记数组、邻接矩阵edge

2021-11-12 16:53:39 5384

原创 浅谈DFS与BFS

深度优先DFSDFS的执行类似于二叉树的前序遍历,从指定位置开始,对图中顶点纵向访问,该过程的实现使用递归。基本思路算法过程:从某顶点出发,访问起点(标记访问并进行相关操作),之后通过递归完成对该点未被访问的邻接点的遍历,直到图中所有顶点均被访问过为止。代码实现以邻接矩阵的遍历为例,对图进行dfs(在本例中,相关操作为输出图中顶点的数据)其中edge为邻接矩阵,vis为标记访问数组。void MGraph::dfs(int v){ cout<<vertx[v];vis[v]=1;

2021-11-11 22:00:58 250

原创 浅谈BF算法的C++实现

算法介绍主串和子串从头开始,逐位比较。若相等,比较后面的;若不相等,回溯(主串从第二位置,子串从头开始比较),直到将字符串都比较完。匹配成功返回开始子串第一字符逻辑上在主串中的位置,否则返回0。代码实现BF算法使用面向结构的思想即可。算法函数int BF(char s[],char t[]){ int start=0; //start记录开始比较的位置,从主串头开始 int i=0,j=0; //i,j分别为主串、子串循环变量 while((s[i]!='\0'

2021-11-10 18:09:42 1646

原创 【数据结构】二叉树的C++实现

结构体——存储结点信息struct BiNode{ char data; BiNode *lchild; BiNode *rchild;};类的声明class Bitree{public: Bitree(){root=creat(root);} ~Bitree(){Release(root);} void Preorder(){Preorder(root);} void inorder(){inorder(root);} void

2021-11-10 17:45:58 1255

原创 【数据结构】哈夫曼树的C++面向对象实现

“哈夫曼树”介绍给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)特点哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近相关术语1.路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-12.结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结

2021-11-10 17:18:37 1087

原创 【数据结构】浅谈C++实现队列

队尾添加,队首删除(排队,先到先出)循环队列基本思路数组+指针实现,需要指定队列长度。前期准备:1.需要两个指针:队首(front)、队尾(rear)指针front永远指向队头元素前一位置,front之后才是第一结点2.循环链接首尾队列长度:Qsize(rear+1)%Qsize==front3.通过C++类实现功能封装class CirQueue{ public: CirQueue(); ~CirQueue(); void add(int x); //入队

2021-10-24 22:59:09 663

原创 【数据结构】浅谈C++栈

栈是只能在一端进行插入删除的线性表,操作只能在一端(栈顶)完成。栈内元素的出入顺序为先进后出.以下为两种栈的存储结构:顺序栈基本思想1.使用C++类实现功能的封装2.存储通过顺序栈数组实现,下标小的为栈底,下标大的为栈顶。存储栈的数组长度为Size.栈满时top指向Size-1,栈空时top为-1.注意:1.入栈时考虑栈满2.出栈时考虑栈空3.由于顺序存储,空间静态分配,无需手动写析构函数销毁空间实现前期准备——类的声明class Seq{ public: Seq();

2021-10-24 19:47:37 1615

空空如也

空空如也

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

TA关注的人

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