java排序算法汇总
这段时间正在找工作,研究了一下算法。我是做web开发的,但是比较喜欢算法的,所以就总结了一下,觉得仍有很多不足,请大家多多指教。如果有合适的工作也挺推荐推荐的。我做开发已经三年了。我的邮箱:zlljsf@gmail.com
排序算法超类:
/**
* 排序算法超类
* 所有排序序列中元素必须实现java.lang.Comparable接口
* @author Liangliang Zhang
*
* @param <E>
*/
public abstract class Sort<E extends Comparable<E>> {
/**
* 排序类中均要实现的排序方法
* @param array 排序序列
* @param from 排序序列开始位置
* @param len 排序序列长度
*/
public abstract void sort(E[] array, int from, int len);
public final void sort(E[] array){
sort(array, 0, array.length);
}
/**
* 经典调换
* @param array
* @param from
* @param to
*/
protected final void swap(E[] array, int from, int to){
E temp = array[from];
array[from] = array[to];
array[to] = temp;
}
}
折半插入排序:
/**
* 算法名称:折半插入排序(Binary Insert Sort)
* 折半插入排序的核心思想是:1、找出插入位置在低半区还是高半区,以顺序为例,假如
* 序列有8个元素,则是找出插入位置是前四个还是后四个而非全部
* 2、找到插入位置后,顺序移动,前提前面元素是有序的
* @author Liangliang Zhang
*
*/
public class BinaryInsertSort<E extends Comparable<E>> extends Sort<E>{
@Override
public void sort(E[] array, int from, int len) {
for(int i = from + 1; i < len; i++){
E temp = array[i];
int low = from + 1;
int high = i - from + 1;
while(low <= high){
int mid = (high + low)/2;
if(temp.compareTo(array[mid]) < 0){
high = mid -1;
}else{
low = mid + 1;
}
}
int j = i - 1;
//这样移动保持序列一直是有序的
for(; j >= high && temp.compareTo(array[j]) == -1; j--){
array[j + 1] = array[j];
}
array[j + 1] = temp;//抵充j--
}
}
}
希尔排序:
import java.util.ArrayList;
import java.util.List;
/**
* 算法名称:希尔排序(Shell's Sort
相关文档:
import java.util.*;
import java.util.regex.Pattern;
public class StrTools {
/**
* 分割字符串
*
* @param str String 原始字符串
* @param splitsign String 分隔符
* @return String[] 分割后的字符串数组
*/
@SuppressWarnings("unchecked")
public static String[] split(Stri ......
一般来说,我们把正在计算机中执行的程序叫做"进程"(Process) ,而不将其称为程序(Program)。所谓"线程"(Thread),是"进程"中某个单一顺序的控制流。新兴的操作系统,如Mac,Windows NT,Windows 95等,大多采用多线程的概念,把线 程视为基本执行单位。线程也是Java中的相当重要的组成部分之一。
甚至最简单的Applet也是由多个线 ......
http://blog.sina.com.cn/s/blog_503cf9f80100b9lf.html
java时间函数(2008-12-06 22:25:46)
<> 标签:杂谈
注意:java.util和java.sql中都有Date这个类,不知道用哪一个了,你可以写死java.sql.Date time = .....
1. Java计算时间依靠1970年1月1日开始的毫秒数. &nbs ......
public class JavaPlus {
public static void main(String[] args) {
int x = 5;
x++;// x = x + 1;//后加加
System.out.println(x);
x--;// x = x - 1;//后减减
System.out.println(x);
++x;// x = x + 1;//前加加
Sys ......
参考配置文件
# 示例配置参考,涵盖几乎所有的主流数据库
############# Oracle数据库 ########################
# 数据库驱动名
driver=oracle.jdbc.driver.OracleDriver
# 数据库URL(包括端口)
dburl=jdbc:oracle:thin:@127.0.0.1:1521:zvfdb
# 数据库用户名
user=root
#& ......