- 博客(10)
- 资源 (14)
- 收藏
- 关注
原创 Java与算法之(13) - 二叉搜索树
查找是指在一批记录中找出满足指定条件的某一记录的过程,例如在数组{ 8, 5, 12, 2, 6, 10, 14, 1, 3, 4, 7, 9, 11, 13, 15 }中查找数字15,实现代码很简单:int key = 15;int[] datas = new int[] { 8, 5, 12, 2, 6, 10, 14, 1, 3, 4, 7, 9, 11, 13, 15 };for(
2016-09-28 16:13:26 8306
原创 Java与算法之(12) - 老鼠再闯迷宫(广度优先算法)
贪吃的小老鼠又回来了,这次有什么新的办法吃到奶酪呢?规则不变,只能上下左右在格子内移动。因为上次的深度优先算法让老鼠走了不少冤枉路,这次老鼠带来了帮手探路鼠。探路鼠的使用规则如下:小老鼠按右、下、左、上的顺序向身边四个格子尝试放出探路鼠,如果遇到猫、出边界、已经有探路鼠存在的格子则放弃。每只探路鼠都有唯一的顺序号,第一只从1开始,每放成功一只序号递增1。老鼠探路完成后,
2016-09-23 10:08:19 4851
原创 Java与算法之(11) - 合并排序
天下事,合久必分,分久必合。合并排序的基本思想正是先分再合。例如对3, 1这个数列排序,首先是分,分为3和1两个数列,然后再合并并排序。合并需要额外的辅助空间,即建立一个两个数列长度之和的空数组用于存储合并结果。合并分为三步:1)两个数列在起始位置各分配一个"指针",对比指针位置的数字,取较小的数字存入辅助数组。数字被移出的一侧,指针右移一格,再次比较两个指针位置的数字,直到某一侧的指
2016-09-21 15:11:10 2338
原创 Java与算法之(10) - 希尔排序
希尔排序是插入排序的一种,是直接插入排序的改进版本。对于上节介绍的直接插入排序法,如果数据原来就已经按要求的顺序排列,则在排序过程中不需要进行数据移动操作,即可得到有序数列。但是,如果最初的数据是按倒序排列的,则在进行插入排序时每次的比较都需要向后移动数据,这样,将导致算法的效率很低。希尔排序的思想是把数列划分为若干个较小的数列,对每组数列使用直接插入排序算法排序,随着增量逐渐减少,每
2016-09-20 16:21:10 4661
原创 Java与算法之(9) - 直接插入排序
直接插入排序是最简单的排序算法,也比较符合人的思维习惯。想像一下玩扑克牌抓牌的过程。第一张抓到5,放在手里;第二张抓到3,习惯性的会把它放在5的前面;第三张抓到7,放在5的后面;第四张抓到4,那么我们会把它放在3和5的中间。直接插入排序正是这种思路,每次取一个数,从前向后找,找到合适的位置就插进去。代码也非常简单:/** * 直接插入排序法 * Created by aut
2016-09-19 14:06:07 2564
原创 Java与算法之(8) - 堆排序
堆是一种特殊的完全二叉树,其特点是所有父节点都比子节点要小,或者所有父节点都比字节点要大。前一种称为最小堆,后一种称为最大堆。比如下面这两个:那么这个特性有什么作用?既然题目是堆排序,那么肯定能用来排序。想要用堆排序首先要创建一个堆,如果对4 3 6 2 7 1 5这七个数字做从小到达排序,需要用这七个数创建一个最大堆,来看代码:/** * 堆排序 * 堆: 特殊的完全二叉
2016-09-18 18:13:17 8160
原创 Java与算法之(7) - 完全二叉树
树下图是一“棵”树的样子。树这个名称起的很形象,整个数据结构由根、枝、叶组成,其中1为根节点,2、3是1的子节点,4、5、6、8、9、10这几个没有子节点的节点称为叶节点。节点的度:一个节点的子树的数量称为该节点的度。例如,图中节点2的度为3,节点3的度为2。树的度:一棵树的度是指该树中节点的最大度数。如图中树的度是3。节点的层数:每个节点都处在一定的层次上,图中根
2016-09-14 14:25:22 10425
原创 在IDEA中实战Git
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七...
2016-09-12 17:56:59 177400 69
原创 Java与算法之(6) - 八皇后问题
在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。(文字和图片来自百度百科)如果动手来摆放皇后,可以用这样一种思路:在最左侧一列放下一个皇后,然后在右边一列从上到下找到第一个与左边皇后不冲突的位置,摆放第二个皇后;在向后一列,从上到下找到第一个与前两个皇后不冲突的位置摆放第三个皇后,依次类推,直到在最后一列摆下
2016-09-06 18:23:43 9430
原创 Java与算法之(5) - 老鼠走迷宫(深度优先算法)
小老鼠走进了格子迷宫,如何能绕过猫以最短的路径迟到奶酪呢?注意只能上下左右移动,不能斜着移动。在解决迷宫问题上,深度优先的思路是沿着一条路一直走,遇到障碍或走出边界再返回尝试别的路径。首先用一个二维数组来把迷宫“数字化”。int[][] maze = new int[5][4];迷宫中每个格子的横纵坐标对应数组的一维和二维索引,例如最左上角的格子是maze[0][0],
2016-09-06 13:47:55 20918 3
SpringCloudAlibabaDemo02.zip
2019-05-14
payment-service.zip
2019-05-13
使用quartz实现不重启服务器修改自定义配置的示例
2017-01-17
Maven+SpringMVC+Mybatis项目搭建示例完整版
2016-07-27
Maven+SpringMVC+Mybatis自定义分页查询标签
2016-07-25
通过Maven的聚合和继承特性创建多模块项目示例
2016-07-18
基于Maven搭建Spring+Mybatis项目的简单示例
2016-07-14
Redis有序集合类型(SortedSet)常用命令演示和实践练习代码
2016-06-23
Redis集合类型(Set)常用命令演示和实践练习代码
2016-06-22
使用ZooKeeper实现软负载均衡示例
2016-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人