- 浏览: 18609 次
- 性别:
- 来自: 广州
最新评论
文章列表
1、描述:希尔排序(查看定义)是直接插入排序的一种扩展算法,对于一个有序序列或者基本有序序列,要在插入一个较小的元素的时候就要从后向前(查看原因)不断的移动,如果序列是相当大的,这种移动是十分耗时的。改进的办法就是将每次从后向前移动的步长增大,这样移动比较的次数就会大大的减少。步长的计算一般由公式:h
= 3*h+1算出,步长由大逐渐减少至1,当减到1的时候,也就是一般的直接插入排序了,但这个时候序列是相对有序的,保证了相对较小的元素不会出现在序列的最后面,从而减少了移动的次数。
2、Java代码实现
public class ShellSort2 {
public static v ...
- 2014-04-05 15:38
- 浏览 529
- 评论(0)
插入排序是简单排序的一种,也是基于“减治法”思想的一种算法,减治法有3种变形:
减去一个常量;
减去一个常量因子;
减去的规模是可变的。
插入排序算法的时间复杂度和冒泡、选择排序算法一样也是o(n²),常见的基 ...
- 2014-04-05 15:21
- 浏览 650
- 评论(0)
下午刚刚参加完华为春季校园招聘的机试考试,总共三道题目,先贴出题目。
第一题:
输入一个整形数据,判断该数据是否是回文,是则返回1,不是返回0。
第二题:
给定一个字符串,将其中出现频率最小的字母删除,返回修改后的字符串。
第三题:
给定一个英文文本,单词之间只以空格和英文逗号(,)和英文句号(.)隔开。忽略字母的大小写,请给出文本中出现频率最高的单词和出现频率第二高的单词。
- 2014-03-30 21:46
- 浏览 539
- 评论(0)
Java中是没有栈这种数据结构的,如果想利用栈的先进后出(FILO),就必须自己动手实现。栈的底层可以使用数组,也可以使用Java中的容器类,如ArrayList、LinkList等。栈最常用的操作主要是压栈(push)、出栈(pop)、查看栈顶元素(peek)、判断栈是否为空(isEmpty)、返回栈的当前大小。原则上栈中有一个指针指向栈顶元素。
1、底层基于数组的栈实现:
import java.util.EmptyStackException;
public class MyStack {
private int[] arr; //底层数组
private int top ...
- 2014-03-30 21:34
- 浏览 1115
- 评论(0)
冒泡排序
1、介绍:
冒泡排序和选择排序的思想是蛮力法,冒泡,顾名思义,每次选择后面一个元素(最大或者最小)冒上来,从而得到一个有序的序列。比如对于序列:10、8、5、7、3、1的冒泡第一趟演示图示如图所示
...
- 2014-03-29 13:20
- 浏览 480
- 评论(0)
症状:
在Linux下通过命令行直接运行tomcat/bin目录下的startup.sh脚本可以正常启动Tomcat,但是配置到Eclipse中启动tomcat正常无错误,命令行监听8080端口正常启动,但是浏览器中无法访问webapps目录下也没有发布的项目,tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误,注意是404,不是没有启动。同时其他项目页面也不能访问。
关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://lo ...
- 2014-03-27 18:54
- 浏览 1776
- 评论(0)
实现了在linux下安装JDK后,再在linux下安装tomcat服务器,为进一步的Java Web开发搭建环境。
首先,下载tomcat,登录Apache官网下载http://tomcat.apache.org/download-70.cgi 注意:下载linux下的合适的版本,这里我下了tomcat7.0的
下载完成后得到apache-tomcat-7.0.52.tar.gz文件
接着,
查看Download目录,新建目录tomcat,把刚刚下载的apache-tomcat-7.0.52.tar.gz文件移到此目录下,进入此目录
继续使用解压命令:tar -zxvfapac ...
- 2014-03-25 18:06
- 浏览 7359
- 评论(0)
要运行Java程序,就必须安装Java RunTime Environment(JRE),要想要开发Java程序则需要安装Java Development Kit (JDK),其中JDK就已经包含了JRE。想要在Linux环境下开发Java程序也是要安装JDK,下面说明如何在Linux环境下安装JDK。
1.下载Linux版本的JDK
登录Apache官网下载http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择合适的版本,这里我选择的JDK7(接受条款,根据linux的位数选择安装包,如果不知道系统是多少位 ...
- 2014-03-25 17:23
- 浏览 445
- 评论(0)
简单排序算法(冒泡排序、选择排序、插入排序)
一、冒泡排序
1、介绍:
冒泡排序和选择排序的思想是蛮力法,冒泡,顾名思义,每次选择后面一个元素(最大或者最小)冒上来,从而得到一个有序的序列。比如对于序列:10、8、5、7、3、1的冒泡第一趟演示图示如图所示
可见第一趟过后做大元素10已经沉底,第二趟就对另外的8、5、7、3、1进行上述同样的比较冒泡,会使得最大元素8沉底,...... ,最终可得到一个有序序列。
2、代码实现(Java):
/**
* 冒泡排序
*@author DR
* @param args
* @return
*2014 ...
- 2014-01-14 21:07
- 浏览 603
- 评论(0)
Java类加载机制(一)
类加载的过程
先从一个HelloWorld说起,对于一个HelloWorld.java文件,起初我们在dos命令行下面使用javac HelloWorld.java编译源程序,生成一个HelloWorld.class的字节码文件,然后我们使用javaHelloWorld就可以执行该程序,可是从我们硬盘上的.class文件是如何变成内存中的执行指令的呢?再细分的一点说,我们知道Java的宣传语:“一次编译,出处执行”,这是由于在应用程序和操作系统中间有一层是Java虚拟机,至于Java虚拟机和操作系统之间的交互,这里不深入讲解。那么我们的问题变成了:.clas ...
- 2014-01-11 13:37
- 浏览 481
- 评论(0)
PL/0语言是Pascal语言的一个子集,我们这里分析的PL/0的编译程序包括了对PL/0语言源程序进行分析处理、编译生成类PCODE代码,并在虚拟机上解释运行生成的类PCODE代码的功能。
PL/0语言编译程序采用以语法分析为核心、一遍扫 ...
- 2013-12-20 23:18
- 浏览 1089
- 评论(0)
Google App Engine
Goole应该是App Engine的先驱,一个简单的Google帐号你就能享受到它很多的服务,Google App Engine(GAE)的优点是大大的,但对于目前中国的开发者(准确的说是中国大陆的开发者)来说,显得没那么大快人心,各种狗血的 ...
- 2013-12-13 22:42
- 浏览 372
- 评论(0)
FIRST集、FOLLOW集 和 SELECT集
一、FIRST集
FIRST(A)为A的开始符或者首符号集。
1、定义:
设G=(VT,VN,S,P)是上下文无关文法 ,FIRST(α)={a|α能推导出aβ,a∈VT,α,β∈V*}
特别的,若α能推导出ε,则规定ε∈FIRST(α).
2、根据定义求解FIRST集(对每一文法符号X∈V计算FIRST(X)):
- 2013-12-04 22:29
- 浏览 539
- 评论(0)
strtus数据类型转换
对于前台界面向后台传送的数据,strtus2可以帮助我们自动的转换其中的一些,包括:java中8中原生数据类型以及像String、Date等常见数据类型,但对于自定义的数据类型还需要我们自己写转换器进行转换。
1 ...
- 2013-11-23 12:23
- 浏览 497
- 评论(0)
汇编语言学习笔记
初步认识汇编
1.基本认识
什么是汇编语言?
汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。学习汇编语言很多时候不是为了用汇编语言去编程,而是让我们去理解机器思维,只有理解了机器的思维和运作方式,才能更好的去使用计算机。学习之前,首先要对硬件系统结构有一定的了解,汇编课程的研究重点放在如何利用硬件系统的编程结构和指令集有效灵活的控制系统进行工作。
机器语言是机器指令的集合。
- 2013-11-05 11:02
- 浏览 348
- 评论(0)