Java 希尔排序(缩小增量排序)
希尔排序算法能够成立的基础是数组也接近有序直接插入排序算法的时间效率越高。希尔排序算法是在不减少数组元素的个数情况下将数组分组,从而将排序好的数插入到新数组中去。关键在于其思想。
算法实现如下:
/**
* 希尔排序又称为缩小增量排序
* @param a 用于排序的数组
* @param incr 希尔增量的数组即用那几个增量进行排序如:2,1即先用增量2进行分组并排序,然后用1直接排序
* */
public void sort1(double[] a, int incr[]) {
int span;// 增量
int alen = a.length;// 数组个数
for (int i = 0; i < incr.length; i++) {//增量个数次
span = incr[i];
for (int j = 0; j < span; j++) {
for (int k = 0; k < alen - span; k += span) {//组内直接插入排序
int p = k;
double temp = a[k+span];//current
while( p >=0 && a[p] > temp){
a[p+span] = a[p];
p -=span;
}
a[p + span] = temp;
}
}
}
}
从注释看来,希尔排序组内运用的直接插入排序算法。
相关文档:
7.1 Swing简介
7.1.1 简介
第五讲中我们学习了AWT,AWT是Swing的基础。Swing的产生主要原因就是AWT不能满足图形化用户界面发展的需要。
AWT设计的初衷是支持开发小应用程序的简单用户界面。例如AWT缺少剪贴板、打印支持、键盘导航等特性,而且原来的AWT甚至不包括弹出式菜单或滚动窗格等基本元素。
此外AWT还� ......
1.factory因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,
如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,
虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。
2.Prototype模式允许一个对象再创建� ......
简单的经验总结
系统环境
OS—Unix系的Solaris(ソラリス)
Langrage—java1.3
Framework—interstageV5(富士通的)http://software.fujitsu.com/jp/manual/b293c34h0.html
DB—Oracle10g
开发工具
IDE eclipse2.1 注:古董
tera term Unix系统的login tool
Framework interstageV5现� ......
一、
为什么要
Web
状态管理
对于每个容器而言每个请求都相当于一个新的客户,因为当服务器生成
Response
返回到客户端,在客户端显示出来后相对应的
Socket
就会关闭,所以
HTTP
协议是个无状态的协议,他不能保存当前用户的信息。
二、
实现状态管理的方式
1.
在网 ......
类加载是java语言提供的最强大的机制之一。尽管类加载并不是讨论的热点话题,但所有的编程人员都应该了解其工作机制,明白怎么做才能让其满足我们的需要。这能有效节省我们的编码时间,从不断调试ClassNotFoundException, ClassCastException的工作中解脱出来。
这篇文章从基础讲起,比如代码和数据的不同之处是什 ......