自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据结构与算法学习笔记(十一)希尔排序

希尔排序希尔排序(Shell Sort)又称为缩小增量排序(Diminishing Increment Sort),也称为n间距(n-gap)插入排序。该算法是一个泛化的插入排序,也是突破时间复杂度O(n^2)的第一批算法之一。插入排序的苛刻要求– 在原数据序列本身就基本有序时,插入排序的效率很高,可快速排序;– 原数据序列记录较少时,直接插入排序也比较有优势;而现实中这样的要求都属于特殊情况,所以希尔排序实现了对直接插入排序的优化。设计思想的不同– 插入排序中的比较是在两个相邻元素之间进行

2021-08-11 17:23:12 125

原创 数据结构与算法学习笔记(十)插入排序

插入排序插入排序(Insertion Sorting)属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。插入排序过程演示代码实现package com.atCodeSun.sort08;

2021-08-11 08:45:51 123

原创 数据结构与算法学习笔记(九)选择排序

选择排序法选择排序(Selection Sort)是一种原地排序算法(不需要额外的存储空间)。选择排序的每一轮排序都会从待排序列中找到一个最大值(或最小值),而第一轮会将最大值(或最小值)的存放位置交换到序列的起始位置,后续的次大值(或次小值)则会存放到已排序的序列的末尾。图解选择排序过程选择排序的实现过程(1)N个数字要排序完成,总共进行N-1轮排序;(2)每一轮排序,又是一个循环;(2-1)先假定当前这个数是最小数(2-2)然后和后面的每个数进行比较,如果发现有比当前数更小的数,就重新

2021-08-10 10:33:57 167

原创 数据结构与算法学习笔记(八)冒泡排序

0x01 冒泡排序冒泡排序(Bubble Sort)是一种交换排序。其基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就像水底下的气泡一样逐渐向上冒。冒泡排序的优化:因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在 排序过程中设置一个标志 flag 判断元素是否进行过交换。从而减少不必要的比较。图解冒泡排序过程...

2021-08-10 08:54:02 135

原创 数据结构与算法学习笔记(七)排序算法预备知识介绍

0x01 排序排序也成为排序算法(Sort Algorithm),排序是将一组数据,按照指定的顺序进行排列的过程。0x02 排序的分类内部排序指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。外部排序数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。常见的排序算法分类0x03 算法的时间复杂度度量一个程序(算法)执行时间的两种方法– 事后统计的方法:需要实际运行该程序;所得的时间的统计量依赖于计算机的硬件、软件等环境因素。– 事前估算的方法:通过分

2021-08-09 19:51:42 116

原创 数据结构与算法学习笔记(六)栈的快速入门及使用栈实现逆波兰表达式求解

0x01 栈定义:栈(stack)是一个有序线性表,只能在表的一端(称为栈顶,top)执行插入和删除操作。最后插入的元素将第一个被删除。所以,栈也称为后进先出(Last In First Out,LIFO)或先进后出(First In Last Out,FILO)线性表。栈的局限性就是栈的最大空间必须先声明且不能改变。两个专有操作:– 入栈 (push):表示在栈中插入一个元素;– 出栈 (pop):表示从栈中删除一个元素;试图对一个空栈执行出栈操作称为下溢(underflow);试图对一个满栈

2021-08-08 22:32:51 193

原创 数据结构与算法学习笔记(五)约瑟夫问题实现

0x01 约瑟夫问题约瑟夫问题(丢手帕问题)  Josephu问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到m的那个人出列,它的下一位又从 1 开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。0x02 实现思路  用一个不带头结点的循环链表来处理 Josephu 问题:先构成一个有 n 个结点的单循环链表,然后由 k 结点起从 1 开始计数,计到 m 时,对应结点从链表中删除,然

2021-08-07 16:30:09 81

原创 数据结构与算法学习笔记(四)双向链表

0x01 定义  双向链表:也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。0x02 双向链表的优缺点优点– 对于链表中给定的一个结点,可以从两个方向进行操作;缺点– 每个结点需要再添加一个额外的指针,需要更多的空间开销;– 节点的插入或删除更加费时(花更多的时间调整指针)。0x03 双向链表的常用操作代码实现遍历添加修改删除package com.atCodeSun.doubleLinkedList04;/** * @autho

2021-07-27 20:16:25 53

原创 数据结构与算法学习笔记(三)单向链表

一. 几个概念0x01 链表  链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的。链表是以结点的方式存储的,是链式存储。结点可以在运行时动态生成。链表是有序的列表,但其在内存中的存储是非连续、非顺序的。0x02 结点  在链表数据结构中,我们把一个数据元素的存储映像称为结点(Node)。而一个结点包含存储数据元素的两部分信息:数据域(Data)和指针域(Next)。0x03 数据域、指针域数据域:存储数据元素信息的域;指针域:存储直接后继位置

2021-07-27 09:50:56 1589

原创 数据结构与算法学习笔记(二)数组模拟队列、环形队列

一. 队列1.1 定义  队列(Queue)和堆栈都是有序列表,也属于抽象型数据类型(Abstract Data Type,ADT)。队列是一种先进先出(First In First Out,FIFO)的线性表,允许插入的一端称为队尾,允许删除的一端称为队头。队列使用front和rear两个指针分别指向队列的前端和末尾。1.2 队列的基本操作特性① 先进先出;② 两种基本操作:加入与删除,而且使用front和rear两个指针分别指向队列的前端和末尾。基本运算① Create:创建空队列;

2021-07-26 10:06:00 101

原创 数据结构与算法学习笔记(一)稀疏数组的压缩与还原

一. 定义  在矩阵(二维数组)中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵(二维数组)为稀疏矩阵(稀疏数组);与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵。二. 分析问题  对于稀疏数组而言,实际存储的有效数据项很少,在计算机中使用传统的二维数组方式存储稀疏数组,就会十分浪费计算机的内存空间。所以应该采取三项式(3-tuple)的数据结构对稀疏数组进行压缩存储,提高内存空间利用率。把每一个非零项以(row,col,item−value)(row,

2021-07-25 21:18:38 447

原创 Java项目管理工具Maven——(二)使用IDEA2020.2.3创建Maven的Java工程和Web工程

0x01.前言0x02.使用模板创建Maven的Java工程####1.创建一个新工程File—>New---->Project0x03.不使用模板创建Maven的Java工程0x04.使用模板创建Maven的Web工程

2021-07-17 16:41:45 431

原创 Java项目管理工具Maven——(一)下载安装和IDEA集成Maven插件

0x01.前言百度百科上一段简介:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者

2021-07-14 17:11:40 248

原创 IDEA2020.2.3创建一个web项目步骤

一. 下载并安装Tomcat1.Tomcat有解压缩版和exe安装版,我采用的是解压缩版。可去[官网下载](https://tomcat.apache.org/download-80.cgi)

2021-07-11 23:06:07 1714 1

原创 压缩版Tomcat访问出错解决

压缩版apache-tomcat-8.5.69浏览器网页访问出错解决问题一下载压缩版apache-tomcat-8.5.69并解压,在浏览器中访问http://localhost:8080或http://127.0.0.1:8080或localhost:8080(高级浏览器可省略前面内容,会默认补齐),没能成功访问Tomcat自带的root项目页面。出现的错误提示信息:java.lang.IllegalStateException: No output folder错误原因:apache-tom

2021-07-10 22:28:07 214

空空如也

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

TA关注的人

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