自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 全面解析注解

一、为什么要学习注解①因为注解现在非常流行,在很多的时候都被应用,特别是框架相关代码,我们第一步也就是拿到别人用注解写的代码做到能看懂②让编程更简洁,代码更加清晰③逼格更高...二、什么是注解注解是在jdk1.5之后被引入的,Java提供了一种源程序中的元素关联任何信息和任何元数据的途径和方法。三、Java中的常见注解1.jdk自带的注解@Override @Deprecated @Suppvis...

2018-03-29 14:24:51 326 1

原创 桶排序(计数排序)原理以及java实现

原来我所介绍的排序都是基于比较的排序,例如快排、堆、归并等等,而桶排序不是基于比较的排序,而是一种基于的是数据状况的排序,桶排序其实是已知要排序的数据所在的区间,把该区间均匀分成n个桶,这n个桶包含要排序的数的所有结果,我们把相应的结果放到相应的桶里,然后再按次序把每个桶里面的数据倒到一个数组里,这个数据就有序了。很明显,他的时间复杂度是O(n)和空间复杂度是O(n),因为桶排序的桶(就是一种容器...

2018-03-28 10:47:59 684

原创 单例设计模式与其线程安全

一、单例设计模式的定义单例设计模式,顾名思义就是用来保证一个类里只有一个实例化对象,且这个对象的实例化是自己进行的,而且容易被外界访问。二、单例设计模式的使用场景因为在单例设计模式中,系统只有一个实例化对象,所以其常用于系统中只允许一个实例化对象存在的场合,如窗口管理器、打印缓冲池、文件系统等等。三、单例设计模式的分类单例设计模式根据其使用的方法分为懒汉、饿汉、双重校验锁、静态...

2018-03-26 20:21:45 282

原创 SpringMVC应用的开发步骤以及SpringMVC的执行流程

一、SpringMVC应用的开发步骤1.在web.xml文件中配置前端控制器DispatcherServlet来拦截用户请求。<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/...

2018-03-19 21:39:32 2678

原创 快速排序原理以及Java实现

为什么要学习快速排序:我们知道,希尔排序相当于直接插入排序的升级版,他们同属于插入排序类,堆排序是简单选择排序的升级,同属于选择排序,快速排序则是最慢排序冒泡排序的升级,同属于交换排序类,就是通过不短的比较和移动交换来实现排序的,只不过他的实现增大了记录比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动交换次数。对于一个包含...

2018-03-18 16:26:57 712

原创 递归思想详解以及归并排序(java实现)

为什么引出归并算法呢,我们知道堆排序是利用完全二叉树的深度log2 n 向下取整再加一的特性,所以效率比较高。但是堆结构的设计相对比较复杂,但是又因为利用二叉树来进行排序的算法效率一般都比较高,所以我们引出利用二叉树特性的归并排序来进行数据的排序。什么是归并排序:归并排序就是利用归并的思想把一组数据,首先分解成n个长度为一的序列,其每个序列都是有序的,然后两两归并,得到n/2向上取整个长度为2或者...

2018-03-15 21:44:32 709 1

原创 选择排序和插入排序(Java实现)

1.选择排序选择排序就是进行n-1轮比较 每轮比较至多交换一次 先设最小值为本轮比较初始值 然后比这个值小的就变为最小值,最后那个肯定是本轮最小值的坐标,然后看初始最小值和最后的最小值得坐标是否相同,若不同则交换位置,相同则不交换代码如下:int i,j,min;for(i = 0;i<a.length-1;i++){ min = i; for(j=i+1;j<a.length-i-1...

2018-03-14 20:01:33 853 1

原创 冒泡算法以及其改良(java实现)

冒泡排序是一种非常简单的排序算法,核心思想就是相邻的两个记录进行两两比较,如果不满足排序条件就交换,满足就不交换,例子:给定一个数组aint i,j;for(i=0;i<a.length-1;i++){ //要注意的是-i是因为最下面的i个数已经排好了没必要再排了 for(j=0;j<a.length-i-1;j++){ //注意判断条件,这个与我们想要的结果相反 if(a[j]&...

2018-03-14 19:58:56 197

原创 堆排序详解(java实现)

堆排序可以看成是对简单选择排序的改良,因为简单选择排序每次都要比较n-1次,当然第一次无可厚非,但是它是没有记忆性的,就是很多比较在之前都已经做过了,但是由于这些比较操作并没有被记录下来,所以后面再进行一趟排序的时候又得再把这些操作再进行重复操作,浪费了很多资源。如果可以做到每次选择到最小记录的同时,又根据比较结果对其它记录做出调整,那么这种排序的效率就会非常高了,而堆排序就是这种非常好的排序算法...

2018-03-14 10:01:23 490

原创 master公式(主方法)

·master公式(也称主方法)是用来利用分治策略来解决问题经常使用的时间复杂度的分析方法,(补充:分治策略的递归解法还有两个常用的方法叫做代入法和递归树法,以后有机会和亲们再唠),众所周知,分治策略中使用递归来求解问题分为三步走,分别为分解、解决和合并,所以主方法的表现形式:T [n] = aT[n/b] + f (n)(直接记为T [n] = aT[n/b] + T (N^d))其中 ...

2018-03-11 15:36:17 19338 7

空空如也

空空如也

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

TA关注的人

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