- 博客(32)
- 收藏
- 关注
原创 JAVA代码实现字符串匹配(一)——BF、KMP
话不多说,直接进入主题: 题目描述:给定两个字符串text和pattern,请你在text字符串中找出pattern字符串出现的第一个位置(下标从0开始),如果不存在,则返回-1; LeetCode字符串匹配的题目:https://leetcode-cn.com/problems/implement-strstr/ 举个例子:字符串tex
2021-06-02 15:21:18 2178
原创 Linux中VIM常用命令(旧)
Linux中VIM常用命令vim是Linux中常用的文本编辑工具,先看一下vim/vi在各个模式下的切换图:常用命令:(一般模式)拷贝当前行:yy,拷贝当前行向下的5行:5yy,并粘贴(输入p);(一般模式)删除当前行:dd,删除当前行向下的5行:5dd;(命令模式)在文件中查找某个单词,输入关键字,回车,输入n查找下一个;(命令模式)设置文件的行号,取消文件的行号:set nu 和 set nonu;(一般模式)编辑/etc/profile文件,使用快捷键到该文档的最末行:G,和最首行:
2021-02-23 16:21:02 251
原创 MAC下常用idea的常用快捷键整理
快捷键功能Command + /行注释Option + Command + /多行注释Option + Command + L格式化代码Command + N生成代码(constructor、getter、setter、实现接口方法等)tab缩进shift + tab反缩进Option + Command + b跳转到接口实现处(或者方法实现处)Command + i跳转接口的声明出(在@Override出使用)Comman...
2020-11-26 16:51:22 1375
原创 Spring事务的学习(三)
上一篇写了spring框架中自定义事务管理器的xml配置和注解配置的两种方式,这篇主要说一下spring框架中自己封装的事务管理器的使用以及xml和注解两种配置方式。下面所涉及的理解均是通过b站上的学习视频所获得,链接先附上:https://www.bilibili.com/video/BV1mE411X7yp。 接下
2020-07-07 18:44:03 133
原创 Spring事务的学习(二)
上一篇主要针对在spring框架中,对自定义事务实现的一些理解,主要是通过ThreadLoca将数据库连接绑定在线程上,再使用jdk动态代理模式将自定义的事务管理器对业务层的方法进行增强,从而将事务从持久层转移到业务层。接下来,本篇文章主要讲一下在spring框架中,如何通过xml文件配置和注解的方式实现事务的控制,再次声明,是从b站的视频中学习的,只是自己在理解。附上链接:https://www.bilibili.com/video/BV1mE411X7yp话不多说,先搭建环境:首先是pom文件:&
2020-07-07 10:45:19 163
原创 Spring事务的学习(一)
最近跟着视频学习了Spring中事务的知识。谈一谈自己的理解,接下来涉及到的代码等资料均来自B站上的视频资料,只是自己在敲得过程中有一些自己的理解。有误的地方欢迎及时指出。事务最常见的应用场景就是银行转账的例子。当A账户向B账户转账过程中,代码出现了异常,导致A扣钱成功,B未接收到金额。出现这种场景的原因就是没有将整个转账的过程用同一个事务进行统一管理。首先,先准备出账户的实体类Account:package com.myself.domain;import java.io.Serializa
2020-07-02 22:55:11 191
原创 GIT常用操作整理
GIT常用操作学习最近在学习GI T版本控制工具,关于GIT的介绍就不做过多阐述,下面将自己平时经常用到的操作,进行一些整理。1.首先需要创建一个版本库: mkdir myreproistory2.将myreproistory文件夹初始化可以管理的仓库 git init3.将readme.txt文件添加到仓库 git add readme.txt4.把文件提交到仓库 git commit -m "第一次提交readme.txt文件"5.查看仓库当前的状态 g
2020-06-05 10:13:36 200
原创 JAVA代码实现平衡二叉树
平衡二叉树平衡二叉树又叫AVL树,它是在二叉排序树的基础上进行了树结构的调整,使其根节点的左右子树的高度差一致。可以保证查询效率更加高效。平衡二叉树涉及到左旋转、右旋转和双旋转,接下来分别用图解分析一下:左旋转右旋转双旋转代码如下:package com.avl;/* * 平衡二叉树: * 1.左旋转 * 2.右旋转 * 3.双旋转 */public class...
2020-03-22 11:54:38 1244 2
原创 JAVA代码实现二叉排序树的创建和删除
二叉排序树的创建和删除最近学习了二叉树的创建和删除功能,本文代码主要实现以下功能:给定一个数列,创建二叉排序树(BST)遍历二叉排序树(中序遍历)删除二叉排序树的节点其中,二叉排序树的删除节点步骤较为繁琐,思路总结如下:一.如果要删除的节点是叶子节点1.找到要删除节点:targetNode;2.找到要删除节点的父节点:parent;3.判断要删除的节点是其父节点的左子节点还...
2020-03-21 15:28:37 259
原创 JAVA代码创建哈夫曼树
哈夫曼树最近学习了数据结构中哈夫曼树的知识。先来看哈夫曼树的定义:给定n个权值作为叶子节点,构造一棵二叉树,如果该树的带权路径长度(WPL)达到最小,则称这样的二叉树为最优二叉树,也称为哈夫曼树。得明确几个重要的概念:路径和路径长度:在一棵树中,从一个节点往下可以达到的孩子或孙子节点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根节点的层数为1,则从根节点到第L层节点的路径长...
2020-03-15 16:23:13 305
原创 JAVA代码实现堆排序
堆排序最近学习了堆排序算法。堆排序是一种选择排序,是不稳定的排序,其最坏、平均、最优时间复杂度都为O(nlogn)。堆排序逻辑上是利用完全二叉树对数进行移动,实际是对数组进行操作。堆排序算法的基本思路:根据升序或降序将数组逻辑上转换成大顶堆或小顶堆;将根节点的数和最后的数交换位置,“沉”在数组的最后,然后继续调整成大顶堆/小顶堆;反复执行步骤2,直至结束。看了上述步骤之后可能会有这...
2020-03-14 16:27:38 160
原创 JAVA代码实现前序和中序线索二叉树的
前序、中序线索化二叉树最近学习了线索二叉树的相关知识。并且用代码实现了前序和中序的线索化二叉树的构建和遍历。具体步骤已在代码中说明。后序线索化二叉树目前还在研究阶段。。。代码中如果有解释错误的地方,还望指出,定会及时改正。package com.tree.binnaryTree;public class ThreadBinnaryTreeDemo4 { public static v...
2020-03-08 20:42:25 176
原创 JAVA代码实现二叉树的前序、中序、后序遍历
二叉树的遍历二叉树的遍历分为前序、中序和后序。可以通过遍历父节点的顺序来区别。前序遍历的顺序是父节点–左子节点–右子节点;中序遍历的顺序是左子节点–父节点–右子节点;后序遍历的顺序是左子节点–右子节点–父节点。通过递归的方式可以将其实现。我主要写了以下几个方法二叉树的前序、中序和后序遍历;按节点编号顺序插入节点;根据编号前序、中序和后序查找对应的节点package com.tree....
2020-03-02 18:59:19 842
原创 JAVA代码实现哈希表
哈希表哈希表也叫散列表,是根据关键码值而直接进行访问的数据结构,通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。举例:定义一个哈希表实现员工的增删改查package com.hashTab;import java.util.Scanner;/* * 使用哈希表完成员工的增删改查 */public class ...
2020-03-01 15:34:59 325
原创 JAVA代码实现二分查找和插值查找
二分查找二分查找,顾名思义就是折半查找。前提是数组必须是有序的。每次将查找的数和数组的中间值进行比较,如果要查找的数比中间值小就左递归继续查找,如果要查找的数比中间值大,就右递归继续查找,如果要查找的数存在,最终就是反复递归后的中间值。package com.search.BinarySerach;import java.util.ArrayList;import java.util.L...
2020-02-29 15:10:03 166
原创 JAVA代码实现基数排序
基数排序基数排序是经典的拿空间换时间的排序算法。当预排数据中有重复数据时,该算法排完序后,重复数据的相对顺序仍然不变,即表明基数排序是一种稳定排序算法。其基本思想如下:第一轮按每个数的个位数的顺序,将数放入0-9的10个桶中,然后按顺序取出来放回原数组;第二轮按每个数的十位数的顺序,将数放入0-9的10个桶中,然后按顺序取出来放回原数组;依次类推。其代码步骤如下:得到数组中最大数的位数,确...
2020-02-27 15:37:12 271
原创 JAVA代码实现归并排序
归并排序归并排序用到了分治法的思想。用代码实现时,按从小到大排序为例,主要的思路分为分解和合并两大步骤:分解:第一次分解时,根据数组的头尾下标,得出分界线的位置,即:mid=(left+right)/2;向左递归分解:就是将数组的头下标和分界线的下标当做新序列的头尾下标再次分解;向右递归分解:就是将分界线的下标后一位(mid+1)和数组的尾下标当做新序列的头尾下标再次分解;分解结束后...
2020-02-27 11:44:08 164
原创 JAVA代码实现快速排序
快速排序快速排序是一种改进版的冒泡排序。针对一组数据,按从小到大排序为例。首先随机选取一个数为基准(一般选取第一个数或者中间数)然后将数据分成左右两组,左边的每个数据都比基准小,右边的每个数据都比基准大。其实现思路是:首先确定基准,然后确定左指针和右指针;右指针先往左移动,找出比基准小的数的下标;当右指针找到比基准小的数时,左指针开始向右移动,找到比基准打的数的下标;如果左指针和右指针...
2020-02-26 19:06:21 197
原创 JAVA代码实现冒泡、选择、插入、希尔排序
冒泡、选择、插入、希尔排序今天学习了八大算法中的冒泡、选择、插入、希尔排序算法。以数据从小到大排序为例,谈一谈自己的理解。有错误之处,还望指出,我会及时改正。1. 冒泡排序:冒泡排序每次将相邻元素进行比较,较大的数放在后面,每轮下来,最大的数都会被交换到最后,并且下一轮不需要进行排序了。通过双重for循环实现,平均和最差时间复杂度为O(n^2)。package com.sort.bubbl...
2020-02-25 22:07:54 170
原创 JAVA代码实现8皇后问题
8皇后问题最近在学习数据结构中的递归算法,并且使用递归思想学习了著名的8皇后问题。先谈谈自己对递归的理解吧。递归算法就是程序不断的调用自身的过程,递归的过程中,一定要注意两点:1.一定要有终止递归的条件;2.一定要不断的逼近递归的终止条件。程序每次调用自身,就会在调用处重新开辟一个栈空间,如果调用的参数是基本数据类型,那么这个栈空间会将参数作为局部变量存放,只供当前栈空间使用。如果调用的参...
2020-02-24 13:48:44 190
原创 JAVA代码实现中缀表达式转后缀表达式并求值
中缀表达式转后缀表达式并求值最近学习了利用栈实现中缀表达式转后缀表达式并求值的实现方式。目前只实现了加减乘除操作,小数部分暂时未考虑。如有错误之处,还望指出,我会及时改正。package com.stack.calulator;import java.util.ArrayList;import java.util.List;import java.util.Stack;/* * ...
2020-02-22 15:08:48 739
原创 JAVA代码实现单链表模拟栈
单链表模拟栈今天使用java实现了用单链表模拟栈的操作,有错误之处,还望指出,我会及时改正。package com.stack;import java.util.Scanner;/* * 单链表实现栈的基本操作 */public class SingleLinkedListStackDemo2 { public static void main(String[] args) ...
2020-02-20 17:18:33 979 5
原创 JAVA代码实现数组模拟栈
数组模拟栈今天用java实现了用数组模拟栈的操作,如有错误之处,还望指出,我会及时改正。package com.stack;import java.util.Scanner;public class ArrayStackDemo1 { public static void main(String[] args) { ArrayStack1 stack = new ArraySt...
2020-02-20 17:15:59 240
原创 JAVA代码实现双链表的增删改查
双链表的增删改查今天学习了双链表的增删改查操作,如果有错误的地方还望指出,我一定会及时改正。package com.LinkedList.DoubleLinkedList;/* * 双链表的增删改查 */public class DoubleLinkedListDemo2 { public static void main(String[] args) { Node node...
2020-02-20 10:39:39 250
原创 JAVA代码实现约瑟夫问题
约瑟夫问题(单向环形链表)今天学习了一下数据结构中的约瑟夫问题。谈了一下自己的解决思路,如果有错误的地方,还望指出,我一定及时改正。问题描述:有n个小孩围坐成一个圈玩游戏,每个小孩按1,2…n进行编号; 从 第k个小孩开始进行报数,数到第m个的小孩出列,然后从他的下一位继续数m个小孩,直到所有人出列,求出列的顺序。package com.LinkedList.DoubleLinkedList...
2020-02-19 17:14:38 390 1
原创 JAVA代码实现单链表的常见操作
单链表的常见操作最近在学习数据结构中单链表的常见操作,用java实现了以下几个操作:单链表的增删改查统计单链表的有效节点个数查找单链表中的倒数第k个节点单链表的反转从尾到头打印单链表合并两个有序的单链表,合并之后的链表依然有序有些地方考虑不周。有错误的地方还望指出,我会及时改正。具体的代码实现如下:package com.LinkedList.summary;impor...
2020-02-18 16:16:01 275 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人