易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关文档:

Java ClassLoader 分析

先贴一段
Java
基本结构
Java
结构包括四个不同而又相关的部分:
Java
语言、
class
文件格式、应用程序接
口、虚拟机
其中,虚拟机的主要任务是在程序运行中需要的时候调用
class
文件并执行其中的字节码。一个
Java

用有两种
class loader

the system class loader

class loader objects ......

java 缩略图 实现

import  java.awt.image. * ;
import  com.sun.image.codec.jpeg. * ;   
 public class poiReadDoc {
 Image img = null;
 int width = 0,height =0;
 String destFile = "";
 public void readImg(String fileName) throws IOException{
  File _fil ......

Java中 ArrayList、Vector和LinkedList 的使用


ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能含有“空隙”,当数组大小不满足时需要增加存储能力,就要将已有数组数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、移动,代价比较高。因此, ......

java格式化日期时间的函数

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
System.out.println(sdf.format(date));
SimpleDateFormat sdf2 = new SimpleDateFormat("MM");
System.out.println(sdf2.format(date));
Calendar c = Calendar.getInstance();
System.out.println(c.get(C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号