自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

算法描述选择排序的基本思想是:如果共有n个元素,那么第一轮的时候就再n个元素中找到最小的元素,如果它不是排在第一个,就让它与第一个元素交换位置。第二轮再在除去最前面的元素(也就是上一轮找到的最小元素)中,再找到最小的元素,使它的位置确定在当前这些元素的最前面。以此类推。。。每一轮都可以确定一个元素的位置,只需要进行n-1次循环后,就可以完成排序。例:原始数据为 15,11,25,78,29,8 需要从小到大排序。第一轮,在6个元素中找到最小值,然后与第一个元素交换位置。第一个8确定位置。第二轮,

2020-08-21 16:52:20 230

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

算法描述冒泡排序的基本思想是:从前往后依次比较相邻的两个元素,(如是从小到大排序)发现数值小的在后面则想换位置,发现数值大的在后面则不变。然后继续向后比较两个相邻的元素,直到比较到最后一个元素,这一小轮的比较就算完成了,那么最大的元素肯定可以确定,且排在了最后的位置,然后在开始新的一轮比较,以此类推。。。例:原始数据为 5,1,4,8,2 需要从小到大排序。第一轮第一次比较5和1,发现5更大所以交换位置(如下图)。第一轮第二次比较5和4,发现5更大所以交换位置。第一轮第三次比较5和8,发现8

2020-08-19 14:21:21 553

原创 数据结构与算法 — 八皇后问题(回溯算法)

问题描述在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。假设上图中红点为一个皇后的位置,那么他的同行,列,斜线上都不能再放置其他皇后(也就是红线覆盖的位置)此图为八皇后问题的其中一种解法,目前已经有人用图论的方法解出92种结果。思路分析一、如何实现这就和我们人做这种题的时候一样,所有放置皇后的过程都是一行一行来的,首先将第一行的皇后放在第一个位置,然后再看第二行。最开始也是将第二行的皇后放在第二行的第一个位置,发现冲突

2020-08-15 15:48:54 5662 1

原创 数据结构与算法 — 递归算法(recursion)

递归的定义在定义一个过程或者函数时出现调用本过程或函数的成分成为递归。简单的来说就是自己调用自己。就像是老和尚的故事一样。(从前有座山,山里有座庙,庙里有个老和尚再给小和尚讲故事,讲的是从前有座山…)调用条件一般来说,能够用递归来解决问题应该满足三个条件:1.需要解决的问题可以转化为一个或者多个子问题来求解,并且这些子问题的求解方式都与原问题相同,只是数量不同。2.递归调用的次数必须是有限的。3.必须有结束递归的条件来终止递归。例题【例1】以下是求n!的递归函数。int fun(int

2020-08-10 20:33:10 559

原创 数据结构与算法 — 栈(使用数组实现)

栈定义栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈的示意图:入栈向栈中添加元素,此过程被称为"进栈" 。top指针初始值为-1,始终指向栈顶元素。出栈从栈中提取出指定元素,此过程被称为"出栈"代码实现(数组)1.

2020-08-03 13:34:06 310

原创 数据结构与算法 — 约瑟夫问题(Josephu)

问题背景著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所有人都自杀身亡为止。然而Josephus 和他的朋友并不想遵从。这个过程沿着圆圈一直进行,直到最终只剩下一个人留下,这个人就可以继续活着。问题是,一开始要站在什么地方才能避免被处决?问题描述设编号为1,2

2020-08-02 16:46:02 952 1

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

双向链表定义双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。双向链表与单链表单向链表优缺点:1、优点:单向链表增加删除节点简单。遍历时候不会死循环;2、缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。双向链表优缺点:1、优点:可以找到前驱和后继,可进可退;2、缺点:增加节点和删除节点复杂,多需要分配一个指针存储空间。代码实现与思路1.定义结点

2020-07-30 14:42:43 617

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

一、链式结构线性表的链式存储结构成为链表,每个存储节点不仅包含元素本身的信息(数据域),而且还包含着元素之间的逻辑关系(指针域)。二、单链表1.定义每一个结点只含有一个指针域的链式结构称为单链表,也就是只能单方向去得到别的节点的信息。2.带头节点的单链表与不带头节点的单链不带头结点的单链表对于第一个节点的操作与其他节点不一样,需要特殊处理,所以处理起来应该是更复杂的。因此,通常在单链表的开始结点之前附设一个头结点。(这里主要讲带头结点的单链表)三、单链表的实现与思路1.定义结点假设这个单

2020-07-29 15:27:58 460

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

环形队列的定义在顺序队列的操作中,有时会发生假溢出的情况。假溢出就是队尾指针rear已经指向了data数组的最大下标,而另一端还有剩下空位置。为了解决这种问题,可以把数组的前端和后端连接起来,形成一个环形数组,我们就称之为环形队列。顺序队列的假溢出如上图所示,讲一个顺序队列添加元素至队满,然后再进行两次出队操作,这时队列中还有两个空余的位置,但是却无法再加入新的元素,这就是假溢出。环形队列的表述环形队列就是如上图一样的环状队列,这就是一个MaxSize=8的空队。环形队列的实现思路1.fr

2020-07-23 15:47:23 2364

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

一、稀疏数组概念在我们存储有大量重复元素值的二维数组时,如果使用一般的二维数组可能会有大量重复元素,这样就会浪费空间,这个时候我们就可以用稀疏数组来进行压缩。例如:下图是一个普通的二维数组这是一个8×8的二维数组,但是他的绝大部分都是0,也就是绝大部分都是相同的数字,这样我们存储的时候就比较的占用空间。也许这个看起来也不少那么的难以让人接受,但是如果是100×100,1000×1000那么就会十分难处理。如果把这个用稀疏数组来表示的话。如下图对比非常明显,这么大的二维数组用稀疏数组来表示只需要

2020-07-21 15:38:09 211

原创 maven整合ssm框架与测试,spring,springMVC,Mybatis

一、分析思路首先,你一定要对这三个框架都有一定的了解,才能去整合它们,如果对它们的使用都不熟悉,那你整合又有什么用。想要整合ssm框架的前提,你要保证每一个框架都可以单独的使用,之后才能考虑整合的事。并且肯定是用spring来整合其他两个框架的。二、搭建环境1.新建一个webapp的maven工程2.在pom.xml中导入相关的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apa

2020-07-17 14:17:35 200

原创 ssm整合基本的pom依赖,spring约束..

pom坐标<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.ta...

2020-04-16 17:13:48 363

空空如也

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

TA关注的人

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