- 博客(40)
- 收藏
- 关注
原创 MyBatis出现:SQLSyntaxErrorException: Unknown column ‘XXX‘ in ‘field list‘
SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'
2024-05-29 19:37:53
407
原创 前中后缀表达式、逆波兰计算器、中缀转后缀
目录前缀表达式中缀表达式后缀表达式(逆波兰)逆波兰计算器代码实现中缀转后缀表达式前缀表达式前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前。举例:(3+4)*5-6 对应前缀表达式为 - * + 3 4 5 6从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应运算,并将结果入栈;重复上述过程至表达式最左端,最后运算结果的值为表达式结果。例如: (3+4)×5-6 对应的前缀表达式就是 -
2022-02-25 00:24:57
132
原创 数组模拟栈
定义栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。 根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除栈的应用场景子程序的调用:在跳往子程序前,会先将下个指令的地址
2022-02-24 14:03:54
608
原创 双向链表CRUD
目录思路代码实现学习笔记单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找。单向链表不能自我删除,需要靠辅助节点 ,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是找到 temp,temp 是待删除节点的前一个节点。思路1.遍历 方和 单链表一样,只是可以向前,也可以向后查找2.添加 (默认添加到双向链表的最后)先找到双向链表的最后这个节点 temp.next = newHeroNode newHeroNode.pre = te..
2022-02-23 23:48:40
173
原创 单链表题目
目录单链表倒数第k个节点思路代码实现单链表反转思路代码实现从尾到头打印链表思路代码实现单链表倒数第k个节点思路 1.编写一个方法,接受head节点,同时接受index 2.index表示倒数第index个节点 3.先把链表从头到尾遍历,得到链表的总长度getLength 4.得到size后,从链表第一个开始遍历(size-index)个 5.找到返回该节点,未找到返回空代码实现public sta......
2022-02-23 22:29:20
69
原创 单链表CRUD
目录链表添加第一种方法直接添加到链表的尾部代码实现第二种方法根据排名插入到指定位置(如果有这个排名,则添加失败,并给出提示)思路代码实现修改代码实现删除思路完整代码学习笔记链表链表是以节点的方式来存储,是链式存储 每个节点包含 data 域, next 域:指向下一个节点. 如图:发现链表的各个节点不一定是连续存储. 链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定添加第一种方法直接添加到链表的尾部代....
2022-02-23 17:50:55
371
原创 java顺序队列
目录队列数组模拟队列代码实现环形队列分析代码实现学习笔记队列队列是一个有序列表,可以用数组或是链表来实现。 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队列的最大容量。 因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front 及 rear 分别记录队列前后端的下标,front 会随着数据输出而改..
2022-02-23 12:11:06
1167
原创 排序算法---快速排序
1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。//快速排序void Quick_Sort(int* arr, int begin, int end) { if (begin > end) return; int tmp = arr[begin]; int left = begin; int right = end; while (left != righ...
2022-02-22 21:11:00
136
原创 计算机三级---网络技术(学习笔记)
网络系统结构与设计进本原则宽带城域网网络平台的主要功能1.核心交换层的基本功能2.汇聚层的基本功能3.接入层的基本功能4.三层结构思想管理和运营宽带城域网的关键技术1.带宽管理2.网络管理3.Qos4.用户管理IP地址的分配与地址转换5.多业务接入6.统计与计费7.网络安全等构建宽带城域网基本技术与方案1.基于10GE技术2.基于SDH技术3.基于弹性分组环技术(RPR)网络接入技术与方法“数字汇聚”、“三网融合”与接入技术宽带接入技术的基本类型1.数字用户xDSL接入技术2.光纤同轴电缆混合网(HFC)技
2020-08-04 18:27:48
476
原创 二叉树的三种遍历(分析+java代码)
目录二叉树的遍历前序遍历思考过程代码中序遍历思考过程代码后序遍历代码完成代码二叉树的遍历 前序遍历先输出父节点,再遍历左子树和右子树思考过程先访问根节点,再前序递归遍历左子树,最后前序递归遍历右子树先访问根节点A。A有左右两个字数,左子树B和右子树E。因为前序遍历,我们先访问左子树B节点B同样有左右两个子树,左子树C和右子树D。因为递归调用,所以A的左子树B也遵守,“先根节点-再左-再右”的顺序,所以访问左子节点C再访问B的右子节点DA的左子树访问完,再调用递归访问A的右子树EE
2020-07-09 15:40:12
551
原创 排序算法---基数排序
基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。 基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法。基本思想将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。图文说明示例
2020-07-08 17:01:16
231
原创 排序算法---归并排序
归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。基本思路
2020-07-08 16:30:33
238
原创 查找算法---(图解)斐波那契查找
斐波那契查找原理与前两种相似,仅仅改变了中间结点(mid)的位置,mid不再是中间或插值得到,而是位于黄金分割点附近。
2020-07-03 11:56:19
7311
8
原创 查找算法——插值查找
插值查找 引言在介绍插值查找之前,首先考虑一个新问题,为什么二分查找算法一定要是折半,而不是折四分之一或者折更多呢?若想从1 ~ 100 之间 100 个元素从小到大均匀分布的数组中查找1,使用二分查找我们要多次递归才能找到1, 我们自然会考虑从数组下标较小的开始查找,而不是折半。 插值查找基本思路插值查找法,就是需要一个自适应的中间值。由二分查找中mid索引的公式转变成;(key就是待查找的值) 对应代码公式:int mid = left + (right – left)
2020-07-02 14:38:18
259
原创 查找算法——二分查找
二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,二分查找要求线性表必须采用 顺序存储结构,而且表中元素按关键字有序排列。基本思路首先,假设表中元素是按升序排列,将表中间位置的数的值与待查找数的值比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,若中间位置值 < 待查找值,则进一步查找前一子表,若中间位置值 > 待查找值,则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止
2020-07-02 14:02:00
462
原创 排序算法---希尔排序
希尔排序(Shell Sort)希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 简单插入排序存在的问题数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,5,6}结论: 当需要插入
2020-07-01 18:01:32
298
原创 排序算法---插入排序
插入排序(Insertion Sort)插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 基本思路把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。代码实现注释便于理解public class InsertSort { public static
2020-07-01 12:08:51
132
原创 排序算法---选择排序
选择排序(Select Sort)选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。基本思路第一次从arr[0]-arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]-arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2]交换,第i次从arr[i-1]~arr[n-1]中选取最小值,与arr[i-1]交换,第n-1次从arr[n-2]~arr[n-1]中选
2020-06-30 22:34:37
177
原创 排序算法---冒泡排序(含优化)
冒泡排序(Bubble Sort)冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。时间复杂度平均情况:O(n^2)逐步分析原始数组:3, 9, -1, 10, 20从3开始向右逐个两两比较,如果相邻的元素逆序就交换第一趟排序(1) 3, 9, -1, 10, 20(2) 3, -1, 9, 10, 20(3) 3, -
2020-06-30 17:39:55
170
原创 (学习笔记)算法的时间复杂度
目录排序的定义排序的分类时间复杂度时间频度忽略常数项忽略低次项忽略系数时间复杂度计算方法常见的时间复杂度平均时间复杂度和最坏时间复杂度排序的定义排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类内部排序: 指将需要处理的所有数据都加载到内部存储器中进行排序。外排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储进行 排序。常见的排序算法分类时间复杂度一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T
2020-06-30 12:42:01
1471
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人