自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zer01ne的博客

一个程序员的成长之路

  • 博客(16)
  • 问答 (3)
  • 收藏
  • 关注

原创 【java数据结构与算法学习】小和问题、逆序对问题

小和问题和逆序对问题是可以用归并排序来实现的。小和问题:在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。例子:[1,3,4,2,5]1左边比1小的数,没有;3左边比4小的数,1;4左边比4小的数,1、3;2左边比2小的数,1;5左边比5小的数,1、3、4、2;所以小和为1+1+3+1+1+3+4+2 = 16主要思想:在归并的过程中比较,找出右边元素有多少比...

2018-03-23 10:56:21 386

原创 【java数据结构与算法学习】归并排序

今天我们来记录一下归并排序。归并排序的主要思想:将数组分成两半,将每一半排好序,然后分别在每一半数组的开头设置指针,进行比较,小的就放在辅助数组中,该指针往下移,直到其中一边的数组走到头,将剩余的元素拷贝到辅助数组中,返回数组就是有序数组。根据master公式O(T) = aO(T/b) + O(N^d)可知,a = 2,b = 2,d = 1 。a/b = d,所以归并排序的时间复杂度是O(N*...

2018-03-22 12:00:20 282

原创 【java数据结构与算法学习】选择排序

选择排序是一种不稳定的排序算法,时间复杂度是O(N^2)的,空间复杂度是O(1)的。主要思想:每次遍历选出较大或较小元素的,放到合适的位置,不断遍历,直到全部数据排序完成。下面是java代码的实现方式:public class ChoseSort { public static void main(String[] args) { int[] arr = new int[]...

2018-03-13 22:10:47 210

原创 【java数据结构与算法学习】冒泡排序

冒泡排序算法原理:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。java冒泡排序的代码的实现://冒泡排序public class BubbleSort {...

2018-03-11 19:43:44 223

原创 JDBC的基本操作流程

感觉自己忘了JDBC的基本操作流程,今天就记录下来吧,时常复习package jdbcDemo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class JdbcText { public sta...

2018-03-10 19:07:46 774

原创 【java数据结构与算法学习】拉丁方阵问题

什么是拉丁方阵问题?如何打印一个拉丁方阵呢?思路:我们可以用循环链表来实现这个功能,通过变换开始打印的位置来改变顺序//拉丁方阵,有待改进public class LaDing<AnyType> { private static class Node<AnyType>{ public AnyType data; public Nod...

2018-03-08 15:16:13 1180

原创 【java数据结构与算法学习】BF算法

BF算法(Brute-Force),是一种最基本的模式匹配算法。BF算法的实现思想很简单:        从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s的第二个字符起再重新和串t进行比较。        依此类推,直至串t 中的每个字符依次和串s的一个连续的字符序列相等,则称模式匹配成功,此时串t的第一个字符在串s 中的位置就是t 在s中的位置...

2018-03-08 14:44:25 548

原创 【java数据结构与算法学习】汉诺塔

汉诺塔是递归分治思想不得不说的经典案例。汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。后来,这个传说就演变为汉诺塔游戏,玩法如下:1.有三根杆子A,B,C。A杆...

2018-03-06 20:17:42 300

原创 【java数据结构与算法学习】队列

队列是一种先进先出的数据结构,和栈一样,是以线性表为基础的。队列可以用顺序存储结构或者是链式存储结构来实现,一般来说,我们都是用链式存储结构来实现的。下面就是链式存储结构队列的基本实现。public class MyQueue { private class Node{ public Integer data; public Node next; ...

2018-03-06 19:07:03 189

原创 【java数据结构与算法学习】几个递归算法的实现

这次刚看到递归,写了几个递归的算法。其中包含了求阶乘、斐波那契数列、字符串逆序输出、折半查找实现。import java.io.IOException;import java.util.Scanner;public class Recuse { //n的阶乘 public int jieCheng(int n){ //n的阶乘 = n * n-1的阶乘 ...

2018-03-06 18:35:38 213

原创 【java数据结构与算法学习】中缀表达式转后缀表达式

通常我们的计算方式都是中缀表达式,如何转化为后缀表达式呢?主要的思想就是:我们创建一个操作符栈,当我们遇到数字的时候就直接进行保存或者输出;当我们遇到操作符 s 的时候,就看一下栈顶元素的优先级是否大于等于当前操作符 s ,如果大于等于,我们就进行出栈操作,然后将当前操作符 s 入栈;如果小于当前操作符 s ,我们就仅将当前操作符 s 入栈;最后将栈中的所有操作符全部弹出。先乘除后加减,同级别的先...

2018-03-05 19:37:14 334

原创 【java数据结构与算法学习】逆波兰计算器

逆波兰表达式也叫后缀表达式,采用逆波兰表达式无需考虑运算符的优先级,逆波兰表达式的计算是使用栈来实现的下面是我写的逆波兰的计算,本人是个小菜鸟,希望各位大牛多指点指点。主要的思想就是:当我们遇到操作符的时候,就出栈两个元素进行计算,然后将计算结果压入栈中;遇到数字的时候就进行压栈操作import java.util.Arrays;import java.util.Scanner;public...

2018-03-05 19:20:52 419

原创 SSM整合的基本配置

1.web.xml的配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.c

2018-03-04 21:17:45 299

原创 SpringMVC面试总结

该文章不定时更新有关SpringMVC的面试问题。1.SpringMVC的工作原理    a.用户向服务器发送请求,请求被SpringMVC前端控制器DispatchServlet捕获    b.DispatchServlet对请求URL进行解析,得到请求资源标识符(URL),根据该URL调用HandlerMapping将请求映射到处理器HandlerExcutionChain;    c.Dis...

2018-03-03 22:10:22 1849

原创 【java数据结构与算法学习】栈

栈的本质是一个线性表,所以栈也分为栈的顺序存储结构和栈的链式存储结构。最开始栈中没有数据,叫做空栈,此时栈顶就是栈底。然后数据从栈顶进入,栈底和栈顶分离,整个栈的当前容量变大。数据出栈时从栈顶弹出,栈顶下移,真个栈的当前容量变小。在java中栈是用数组来实现的,用数组实现避免了链结构而且可能是更流行的解决方案。正常情况下入栈和出栈的时间复杂度都为常数O(1)的,在内部数组扩容是入栈操作才是O(n)...

2018-03-02 20:56:53 223

原创 【java数据结构与算法学习】魔术师发牌问题

魔术师发牌问题:    魔术师手里一共有13张牌,全是黑桃,1~13.魔术师需要实现一个魔术:这是十三张牌全部放在桌面上(正面向下), 第一次摸出第一张,是1,翻过来放在桌面上。 第二次摸出从上往下数第二张,是2,翻过来 放在桌面上,(第一张放在最下面去,等会儿再摸), 第三次摸出从上往下数第三张,是3,翻过来放在桌面上,(第一张和第二张 放在最下面去,等会儿再摸) 以此类推 最后一张就是13 魔...

2018-03-01 19:37:47 423

空空如也

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

TA关注的人

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