自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构与算法-排序算法4-希尔排序

排序也称为排序算法。排序是将一组数据依据指定的顺序进行排列的过程。希尔排序是希尔于1959年提出的一种排序算法,它也是一种插入排序,是简单那插入排序经过改进之后的一种更高效版本,也称为缩小增量排序。把记录按下标的一定增量分组,(先将其分为数组长度的一半,然后再把一半继续分为一半,依此类推)对每一组使用直接插入排序算法排序,随着增量逐渐变小,每组包含的关键词越来越多,当增量减至1时,整个文件恰好被分为一组,算法便终止。

2024-05-19 00:14:36 829

原创 数据结构与算法-排序算法3-插入排序

数组中n个元素,把这n个待排序元素看成一个有序序列和一个无序序列。开始时有序序列中只有一个元素,无序序列中有n-1个元素。排序过程中每次从无序序列中取出第一个元素,把它与有序序列中元素进行比较,将它插入到有序序列中的适当位置。这样有序序列中就多了一个元素,无序序列中就少了一个元素。直到无序序列中没有元素了,整个数组中元素就排好序了。插入排序是将无序序列中元素一个个插入到有序序列中。

2024-05-15 00:43:37 301

原创 数据结构与算法-排序算法2-选择排序

排序也称为排序算法。排序是将一组数据依据指定的顺序进行排列的过程。数组中n个元素,从数组第一个元素开始到最后一个元素,第一次从arr[0]到arr[n-1]中选取最小值min1,如果min1不等于arr[0],就将min1与arr[0]交换。接着对右边n-1个元素也这样,第二次找到这n-1个元素中的最小值min2,比较min2与arr[1],如果不相等就交换。依此类推记住:选择排序是从左到右找到位置对应的元素。

2024-05-14 18:05:33 666

原创 数据结构与算法-排序算法1-冒泡排序

排序也称为排序算法。排序是将一组数据依据指定的顺序进行排列的过程。内部排序:将需要处理的所有数据都加载到内存中进行排序。外部排序:数据量过大(比如10亿个数据),无法全部加载到内存中,就需要借助外部存储(文件、磁盘等)进行排序。先加载一部分,排序完之后再加载另外一部分进行排序,排序完再合并。数组中n个元素,从数组第一个元素开始到最后一个元素,依次比较相邻元素的值,如果如果左端元素大于右端元素就交换它们的位置,使得较大的元素在右边。这样数组最右端的元素就是数组中的最大元素。

2024-05-13 22:13:00 1089

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

一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中语句的执行次数称为语句频度或者时间频度,记为T(n)。举例:一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示(就是前面时间频度的那个T(n))。若有某个辅助函数f(n)使得当n趋于无穷大时T(n)/f(n)的极限值为不等于0的常数,就称f(n)是T(n)的同量级函数,记为T(n)=O(f(n)),O(f(n))为算法的渐进时间复杂度,简称为时间复杂度。

2024-05-13 00:53:23 591

原创 数据结构与算法-栈

栈(stack)栈是一个先进后出的有序列表限制线性表中元素的插入和删除只能在线性表的同一端进行。允许插入和删除的一端即变化的一端称为栈顶top,另一端为固定的一端称为栈底bottom。最先放进栈中的元素在栈底,最后放入的元素在栈顶。在删除元素时最先放进的元素最后删除,最后放入的元素最先删除。可以想象,最后放进去的东西在栈最上面,最好拿。最先放进去的东西在栈底,如果栈底的上面还有东西,要拿到栈底的东西就需要先把上面的东西拿开才能拿到栈底的东西,就挺麻烦的,所以最最后拿栈底的东西。

2024-05-05 16:09:36 768

原创 数据结构与算法-单向环形链表与约瑟夫问题(续思路与代码)

上一篇写的单向环形链表与约瑟夫问题简介和举例,这篇写思路和代码。先创建一个节点,有个first变量指向这个节点,这个节点的next也是指向自己。还有个curBoy变量。然后新加一个节点,还有个boy变量。根据用户输入,生成出圈顺序。先设置一个辅助变量helper初始时指向环形链表最后一个节点,小孩报数前先让first和helper移动k-1次也就是移到k所在编号节点。当小孩报数时,first和helper同时移动m-1次(总共移动m下,因为到自己要移动一下,所以除自己之外要移动m-1下)

2024-05-05 01:36:35 1242

原创 数据结构与算法-单向环形链表与约瑟夫问题

单向环形链表,闭合的形成一个环。单向环形链表的一个应用场景是约瑟夫问题。约瑟夫问题为:设编号为1,2,…,n的n个人围坐一圈,约定编号为k(1

2024-05-03 22:46:10 308

原创 数据结构与算法-双向链表

在使用带头节点的单向链表查找时查找的方向只能是一个方向,而双向链表可以向前或向后查找。例如单向链表只能查到一个节点的下一个节点,但是双向链表不仅可以查到下一个节点,还可以查到上一个节点。在删除节点时,单向链表不能自我删除,需要借助辅助节点temp,因为单向链表就能找到下一个节点,把这个节点删了就不能直接找到下一个节点了。而双向链表可以自我删除,反正可以找到前一个节点,也可以找到后一个节点,这个节点自己就可以实现删除自我,让自己上一个节点和下一个节点连起来。

2024-05-03 22:08:25 921

原创 数据结构与算法-单链表面试题

在HeroNode类中写一个方法public static int getLength(HeroNode head)获取节点个数。如果是带头节点就不统计头节点。如果head节点的next为null就返回0.否则定义一个length变量用于计数,定义一个辅助变量current,current=head.next,然后循环中只要current不为null就把length加1,再把current后移。循环结束后返回的length就是节点的个数。

2024-05-01 23:07:17 373

原创 数据结构与算法-单链表

本文包括单链表的添加删除修改链表(Linked List)链表是有序列表,但在内存中存储情况如下比如这里的头指针是150,我们就找到地址为150的这行,即data域是a1,它的next域是110,那么就指向地址为110的这行,它的data域是a2,next域是180,那么就指向地址为180的这行,data域是a3.以此类推。它的每个节点并不是连续存储的。就是地址不是连续的。

2024-05-01 17:49:00 822

原创 数据结构与算法-抽象数据类型ADT系列

以前在学习数据结构的时候做实验,老师要求用来写这些实现代码。不过以前学习的时候使用的编程语言是,里面会用到很多指针。现在编代码过程大多数时候都是用Java。不过思路应该还是可以参考一下的。二叉树:前序、中序、后序遍历。哈夫曼树。图。链表。栈。队列。邻接矩阵。邻接表。

2024-04-29 22:22:54 320 2

原创 数据结构与算法-环形队列

针对简单队列中数组使用一次就不能用,无法复用的问题,将这个数组改成一个环形队列,使得数据取出后这个空间能够再次使用。环形队列常用公式队满: (rear + 1) % maxSize == front队空:rear==front将数据加入队列思路先判断是否队满,没满就QueueArr[rear] = n,因为rear指的是队尾数据的后一个,所以不用先rear+1.然后,赋值之后再将rear指针移位,不过不是直接rear+1,而是(rear+1)%maxSize,环形队列嘛,取模。

2024-04-29 20:11:35 846

原创 数据结构-简单队列

队列为一个有序列表,可以用数组或链表来实现。先进先出原则。先存入队列的数据先取出,后存进队列的数据后取出。这里对比一下,栈是后来者居上下面使用数组来模拟队列,用数组的结构来存储队列的数据:Queue中两个指针,front为队首,rear为队尾。maxSize是该队列的最大容量。当有数据加进来时,加到队尾,front没有变化,而rear在增加。当数据被取出,从对头取出,rear没有变化,而front在增加。front随数据输出而改变,rear随数据输入而改变。怎么记呢?

2024-04-28 22:44:08 975

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

当一个数组中大部分元素为0或者为同一个值时,可以用稀疏数组来保存这个数组。记录数组共有几行几列,有多少个不同的值把具有不同值的元素的行列以及元素的值记录在一个小规模的数组中,从而缩小程序的规模简单点说就是稀疏数组只记录有数据的行和列。

2024-04-28 00:42:37 893

原创 线性结构与非线性结构简介

线性结构中除了第一个元素和最后一个数据元素之外,其它数据元素是首尾相接。(可能偶然情况下会连续),每个数据相当于一个节点,节点中存放数据元素以及相邻元素的地址信息,通过指针连起来,这样就方便利用零散的内存(这里放一块,那里放一块,元素之间离散存储,反正可以找到它相邻的节点,通过指针彼此相连)。也就是,各个数据元素不再保持在一个线性序列中,每个元素可能与零个或多个其它数据元素发生联系。·集合中存在唯一的“第一个元素”和“最后一个元素”。·除了最后一个元素之外,其它数据元素都有唯一后继。,链式存储的线性表是。

2024-04-27 17:34:20 393

原创 数据结构与算法开篇

的学科,有了编程语言也就有了数据结构。学好数据结构可以编写出更加漂亮更加有效率的代码。3.在实际应用中,选择和设计合适的数据结构和算法是。,高效的程序需要在数据结构的基础上设计和选择算法。1.数据data结构structure是一门。要想学好算法,就要把数据结构学到位。2.要学好数据结构就要多多考虑如何。,而算法的设计依赖于合适的数据结构。优化程序性能和解决问题的关键。静态的描述数据元素之间的关系。数据结构为算法提供基础。解决问题的步骤和方法。

2024-04-27 16:34:06 196

原创 文件上传阿里云OSS准备工作及入门程序(保姆级手把手教你)

使用阿里云作为第三方,来存储文件。文件上传阿里云OSS准备工作及入门程序(保姆级手把手教你)由于我们的项目Accesskey是固定的,那么可以把代码变成工具类,然后要用的时候就调用。再调用ossClient的putObject将这个请求对象传到oss服务器上。我们这里想要上传图片,可以把上面的new的Byte的换成newFileInputStream,然后里面填上图片路径。这里我们的项目是Maven项目,所以选择的是在Maven项目中加入依赖项。就可以复制代码,然后我们去IDEA的pom.xml

2024-04-13 00:32:59 582

原创 vue3表单参数校验+正则表达式

这里我们要实现注册页在form表单中对表单项添加参数校验。我们的表单中有用户名、密码、电话号码、邮箱这四个项。要求手机号码以 1 开头,第二位为 3 到 9 之间的数字,后面跟着任意 9 个数字,总共是 11 位数字。邮箱正则表达式,要求一个或多个字母、数字或下划线,接着是 @ 符号,然后是一个或多个字母、数字或下划线,接着是一个句点,最后是一个或多个字母、数字或下划线。对页面进行数据绑定。在el-form标签上通过rules属性,绑定校验规则,在el-form-item标签上通过prop属性,指定校验项。

2024-04-04 23:19:00 1566

原创 spring boot后端controller中接收表单参数校验

校验分为两部分,一部分是前端的输入时就校验,一部分时后端接收参数时的校验。本文提到的是后端接收参数时的校验。这个后端校验的存在有什么意义呢?防止不合法的参数对系统造成影响。这里我们会说到正则表达式校验。① 导入validation坐标② 在参数上添加@Pattern注解③ 指定校验规则在Controller类上添加@Validated注解④ 在全局异常处理器中处理参数校验失败的异常希望以上内容能帮助到你^_^加油加油。

2024-04-04 01:28:43 1027

原创 SpringBoot中Bean注册

这样当springboot工程启动后,就先扫描import,然后去找到这个CommonlmportSelector实现类,自动执行selectlmports方法,得到这些类名,把这些类名对应的对象注入到IOC容器中。如果要注册的bean对象来自第三方,不是自定义的,无法用@Component 及衍生注解声明bean的。应该用@Bean和@Import。SpringBoot还提供了设置注册生效条件的注解 @Conditional。

2024-04-02 00:23:45 706

原创 spring boot自动配置原理-怎样回答这个问题

spring boot2.7以前的版本,读取的是spring.factories文件。我们引入了spring-boot-starter-web 起步依赖,我们的spring boot就帮我们自动注入DispatcherServlet。如果面试官问:说一说SpringBoot自动配置原理?我们可以回答:首先,在主启动类上添加了SpringBootApplication注解,这个注解组合了EnableAutoConfiguration注解。

2024-04-02 00:14:52 1010 4

原创 springboot配置文件application.properties,application.yml/application.yaml

Springboot提供的一种属性配置方式:application.properties初始时配置文件中只有一行语句。启动时,比如tomcat的端口号默认8080,路径默认。如果我们要改变端口号及路径之类的可以在application.properties中配置。我们改变端口号为9090,虚拟目录以/start开始。在浏览器输入可以看到结果。注意application.properties中配置以点·分隔。

2024-04-01 00:32:14 1087

原创 SpringBoot3入门

本文用于SpringBoot3入门。可以实现在浏览器地址栏输入显示字符串。创建springboot项目。Jdk版本选17及以上,java选17及以上版本。打包方式选jar。因为当前工程内部已经内嵌了tomcat,就不用另外打包成war包了。在dependences中选web下的springboot web就可以自动引入spring-boot-starter-web起步依赖。

2024-04-01 00:24:02 550

原创 vue3数据库中存头像图片相对路径在前端用prop只能显示路径或无法显示图片只能显示alt中内容的问题的解决

然后我们如果用prop="avatar" label="头像"是只能显示图片路径的,即loginBG6这样的文字。我们的目的是显示图片,直接用的方式,结果是不能成功的。我们在数据库中存的是相对路径,那么我们可以在require中补齐路径。其实也不算补完整,这里补了之后也是相对的,变成@/assets....这种的也就是相对在根目录下。我们尝试直接是可以出来图片的,只是所有显示的图片都是同一张。

2024-03-31 01:06:54 613

原创 vue3 el-table 表头以及表格文字居中

使表头文字居中::header-cell-style="{ textAlign: 'center' }"使表格内容文字居中::cell-style="{ textAlign:'center' }" 3、fixed:接受 Boolean 值left或者 right,表示左边固定还是右边固定。2、height:可实现固定表头的表格,不需要额外的代码。5、row-class-name:改变某行的背景色。1、border:给表格加边框。

2024-03-31 00:39:43 807

原创 达梦数据库使用数据库迁移工具弹窗报错“获取模式失败”的解决办法

于是我们改变数据库的状态。因为MOUNT和OPEN状态可以相互转换,我们就新开一个窗口,在/dm8/bin目录下连接数据库,将数据库状态改为open。因为mount状态下是读取数据或者访问表、视图等数据库对象。在open状态下可以提供正常的数据库服务。在使用数据库迁移工具Data Transfer Service时,在下面这个页面点击下一步之后报错。这里显示系统处于MOUNT状态,这可能是出错的原因。我们去查看数据库状态。修改状态为open之后再迁移就可以成功了。发现是mount状态。

2024-03-05 17:15:40 347

原创 达梦数据库将DMHR模式下的表(迁移)导出为EXCEL文件

数据库迁移工具(Data Transfer Service)位于/dm8/tool/dts.其中/dm8是数据库安装目录。以上就是把达梦数据库中的DMHR模式下的表EMPLOYEE导出为EXCEL文件的全过程了。这里sysdba为用户名,Dameng123为口令,192.168.148.130为主机号,5236为端口号。或者本地的可以直接省略ip地址或主机名,即./disql sysdba/Dameng123。我们可以去/dm8/DM2EXCEL1目录下查看,发现已经有这个文件了。可以看到出现了新的工程。

2024-03-05 16:43:52 1240

原创 Spring MVC数据绑定的几种方法(一)

1)在IDEA环境中从archetye创建webapp类型的maven项目exp6。2)在src\main目录下创建并标注java源代码文件夹和resources资源文件夹。3)在pom.xml文件中,添加Spring MVC的相关依赖。4)在resources文件夹下创建配置文件并完成相关配置。5)配置web.xml文件。6)配置Maven启动项。在pom.xml文件中引入tomcat添加Maven启动项,使用命令。

2023-12-03 21:50:37 358

原创 controller能接收到数据有数据但是前端无法显示数据

又是制作系统时遇到的问题。只是想做个查询的页面,结果弄了一天,在网上各种查问题,各种解决办法用在我的代码上,换了无数种关键词搜索终于找到了一条成功解决了问题。

2023-12-03 16:10:53 488

原创 jsp前端输入中文数据传到controller变成问号?的解决办法

然后就想着是不是编码的问题,或者数据库问题,就把controller里收到的姓名和密码在控制台输出,结果发现输出的姓名是问号?又把拼音版的也输出就没问题。然后就找网上教程,又是一堆配置的还一堆对我的代码没有效果的,比如在UserController里面,login前面的@RequestMapping那里改,把这个。还是写老师布置的实验的时候,解决了xml文件找不到的问题之后又遇到新的问题:前端登录处输入用户名和密码,结果明明输入的用户名是对的密码也是对的(输入的用户名是中文),它就是显示用户名或密码错误。

2023-12-02 00:52:56 455

原创 Mapper文件夹在resource目录下但是网页报错找不到productMapper.xml文件的解决

我寻思着应该是因为以前的是除了com.dhu.mapper包还有com.dhu.controller这样的包,所以自动会划分层级,而这里可能是没有直接划分层级,所以还是用点,也就是这个包原来的名字。然后找了网上一堆教程,加加减减配参数的都有,还有说在mapper包里放package的,package=com.dhu.mapper,也没用,还是找不到这个xml文件。网上有问题的一部分不是因为mapper包位置没有放在resource目录里,我的没放错但是就是报错了。然后试了一下还真可以!

2023-12-02 00:29:14 158

原创 在用visualstudio连接数据库显示已存在以及此版本的SQLServer不支持用户实例登录解决

因为错误尝试太多遍了就没有截图,,后面没有截图就只能凭着记忆进行语言描述了,大家遇到一样的问题可以根据描述的去试一下,万一成功了呢。之类的下拉栏那里,开始没有选other的时候它只有四个选项的,然后选了之后有5个选项了,也不知道是不是我连的次数太多了)直接选择。后面我还是把那个mdf导入数据库里,然后在服务资源管理器那里连接数据库的时候就没有直接选SQLserver的选项,而是选择其它。连接成功之后就去运行代码发现出现了数据库已存在的问题,跟几个小时前遇到的问题一样,然后我。,然后再运行就成功显示了。

2023-10-22 02:26:21 302

原创 leetcode21合并两个有序链表

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解法1:循环+双指针。解法2:递归。

2023-09-17 17:00:41 152

原创 leetcode448找到所有数组中消失的数字

给你一个含n个整数的数组nums,其中nums[i]在区间[1, n]内。请你找出所有在[1, n]范围内但没有出现在nums中的数字,并以数组的形式返回结果。[5,6][2]你能在不使用额外空间且时间复杂度为O(n)的情况下解决这个问题吗?你可以假定返回的数组不算在额外空间内。

2023-09-05 16:18:45 223

原创 leetcode283移动零

给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。

2023-09-04 23:50:00 266

原创 leetcode88合并两个有序数组

给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你nums2到nums1中,使合并后的数组同样按排列。最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。需要合并 [1,2,3] 和 [2,5,6]。合并结果是 [,2,,5,6] ,其中斜体加粗标注的为 nums1 中的元素。[1]

2023-09-04 12:24:01 464

原创 leetcode1两数之和

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]

2023-09-04 01:48:13 205

原创 leetcode70爬楼梯

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?n = 22有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶n = 33有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶n=1时,f(n)=1;n=2时,f(n)=2;n>2时,f(n)=f(n -1)+f(n -2)

2023-09-04 00:23:21 280

原创 数据库子查询

4. 显示所有部门地点号 (department location ID ) 是 1700 的雇员的 last name、department number 和 job ID。1. 写一个查询显示与 Zlotkey 在同一部门的雇员的 last name 和 hire date,结果中不包括 Zlotkey。的雇员的雇员号和名字。保存 SQL 语句到一个名为 lab6_3.sql 的文本文件中,运行该查询。2. 创建一个查询显示所有其薪水高于平均薪水的雇员的雇员号和名字。有任一雇员的名字中包含一个。

2023-06-24 21:12:00 447

空空如也

空空如也

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

TA关注的人

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