java
金皓皓
码农一名,技术不足。
展开
-
java数据结构(一)——线性链表
与C++类似java数据结构的线性表中也有顺序表和线性表。但是顺序表有几个缺点:1.插入删除操作不方便。2.存储空间必须连续,当表较大时无法申请到足够大的连续存储空间。所以,本文介绍链表结构。 链表具体结构如下: 1.数据部分,保存需要存储的数据。 2.地址部分,保存下一个节点的地址。代码主要包括数据结构和数据操作。数据结构部分:class DATA{原创 2016-06-01 12:57:22 · 538 阅读 · 0 评论 -
青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解:这是一个典型的斐波那契额数列问题。(1)假设青蛙已经到了顶部,那么它可能是从n-1或者n-2的地方上来的,也就是说f(n) = f(n-1)+f(n-2);(2)如果是从n-1的台阶上来的,那么它可能是从n-2或者n-3上来的,即对于f(n-1) = f(n-2)+f(n-3)(3原创 2017-11-10 15:10:34 · 156 阅读 · 0 评论 -
Ubuntu 14.04安装JDK1.8.0_25与配置环境变量
本文转载自:http://www.linuxidc.com/Linux/2015-01/112030.htm以下是Ubuntu 14.04安装JDK1.8.0_25与配置环境变量过程笔记。1、源码包准备:首先到官网下载jdk,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo转载 2017-08-02 15:54:50 · 278 阅读 · 0 评论 -
一个经典例子让你彻彻底底理解java回调机制
以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口CallBack callback转载 2016-12-13 15:07:29 · 247 阅读 · 0 评论 -
java算法(一)——排序算法(下)之 插入排序
插入排序算法通过比较和插入来进行排序,其流程如下: (1)首先对数组的前两个数据进行从大到小排列 (2)接着将第3个数据与排好的前两个数据进行比较,将第3个数据插入合适的位置。 (3)然后,将第4个数据插入已排序的前3个数据中。 (4)不断重复上述过程。static void insertionSort(int a[]){ int i,j,t,h; f原创 2016-08-14 20:38:52 · 223 阅读 · 0 评论 -
java算法(一)——排序算法(下)之 合并排序
合并排序(MergeSort)算法就是将多个有序数据表合并成一个有序数据表的过程,如果只有两个有序数列则成为二路合并。 以下是合并排序的具体算法:import sun.net.www.content.text.plain;import com.sun.accessibility.internal.resources.accessibility;public class MergeSort {原创 2016-08-24 22:45:59 · 448 阅读 · 0 评论 -
java算法(一)——排序算法(下)之 快速排序
快速排序算法跟冒泡排序类似,都是基于交换排序的思想,快速排序是对冒泡排序的改进。快速排序通过多次比较和交换实现排序,其排序流程如下:(1)首先设置一个分界值,通过该分界值将数组分为左右连部分。 (2)将大于等于分界值得数据集中到数组右边,小于分界值得移动左边。 (3)对左右两边继续取分界值,移动数据。 (4)重复上述过程,可以看出这是一个递归定义。通过递归将左侧数据排好序后在递归右原创 2016-08-15 23:26:30 · 241 阅读 · 0 评论 -
java算法(一)——排序算法(下)之 shell排序
前面介绍过插入排序,其实shell排序的思想跟插入排序一样。具体过程如下: (1)将n个元素的数组分成n/2个数字序列,第1个与第n/2+1个为一组。 (2)对这些元素插入排序 (3)然后,变为n/4个数字序列,再次排序。 (4)不断重复,直到序列变为1个。 数字4 5 8 7 1 6 3 7 序号0 1 2 3 4 5 6 7第一次4 1|5 6|8 3|7 7四组 排序后:1 5原创 2016-07-17 21:16:24 · 339 阅读 · 0 评论 -
java数据结构(三)——队列
队列结构是从数据运算来分类的,也就是说队列结构具有特殊的运算规则。从数据运算角度讲,队列结构是按照“先进先出”(First in First Out, FIFO)的原则处理结点数据的。队列是一种线性结构,从存储角度分可分为以下两种:1.顺序队列 2.链式队列基本操作:1.入队列:将一个元素添加到队尾(相当于到队列最后排队等候)。2.出队列:将队头元素取出,同时删除该元素,使后一个元原创 2016-06-18 09:31:15 · 280 阅读 · 0 评论 -
java数据结构(五)——图论
树结构有一个基本的特点就是数据元素之间有层的关系,每一层的元素可以和多个下层元素关联,但是只能和一个上层元素关联。如果扩展一下,每个数据元素之间可以任意联系,这就构成了一个图结构,研究图结构的一个专门理论就是图论。 图的构成: 顶点(Vertex):图中的数据元素。 边(Edge):图中连接这些顶点的线。 具体的图的相关结构不再赘述,自行百度。 1.数据准备class GraphMat原创 2016-07-09 20:53:43 · 778 阅读 · 0 评论 -
java数据结构(四)——栈
树结构是一种描述非线性关系的数据结构。对于树的基本概念不想过多赘述,可以自行查阅相关资料,这里主要讲解一种简单的树结构——二叉树。二叉树是树的一种特殊形式,它有n个结点,每个结点最多有两个子结点。二叉树的子树仍然是二叉树,二叉树的两个子树分别是左子树和右子树,因此二叉树也是有序树。二叉树又分为:完全二叉树和满二叉树,概念不再详述,自行查找。 完全二叉树的性质: 1、如果m!=1,则结点m的父原创 2016-06-24 22:25:22 · 256 阅读 · 0 评论 -
java数据结构(二)——栈
在程序设计中,大家一定接触过“堆栈”,其实堆和栈是两个完全不同的概念,栈是一种特殊的数据结构。在中断处理中常用来保护现场。 在栈的结构中,只能在栈的一端进行数据操作,这一端成为栈顶,另一端成为栈底。即:数据的存取只能在栈顶进行。从数据运算的角度来分析,栈结构式按照“后进先出”(Last In Firt OUT,LIFO)的原则处理结点的。1.数据准备部分//数据class DAT原创 2016-06-06 16:10:59 · 299 阅读 · 0 评论 -
java算法(一)——排序算法(上)
排序(sort)是将一组数据按照一定的规则来进行排列,一般按照递增或者递减的顺序来进行排列。排序算法是一种最基本的算法,但是在实际应用中非常广泛,对于初学编程人来说,排序算法也是最基本的算法之一。本节主要讲解排序算法中相对简单的几种,分别是: 1、冒泡排序 2、选择排序 3、插入排序 后边还会介绍一些,其他的排序方法,比如:shell排序、快速排序、堆排序等等。1、冒原创 2016-06-12 14:42:41 · 359 阅读 · 0 评论 -
Java中的equals和==
在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(str2)); 为什么第4行和转载 2018-01-11 17:14:16 · 134 阅读 · 0 评论