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

[转]常用排序算法分析与实现(一)(Java版)


在已经排好序的序列中查找待插入的元素的插入位置,并将待插入元素插入到有序列表中的过程。
 
将数组分成两部分,初始化时,前部分数组为只有第一个元素,用来存储已排序元素,我们这里叫 arr1 ;后部分数组的元素为除第一个元素的所有元素,为待排序或待插入元素,我们这里叫 arr2 。
排序时使用二层循环:第一层对 arr2 进行循环,每次取后部分数组(待排序数组)里的第一个元素(我们称为待排序元素或称待插入元素) e1 ,然后在第二层循环中对 arr1 (已排好序的数组)从第一个元素往后进行循环,查到第一个大于待插入元素(如果是升序排列)或第一个小于待插入元素(如果是降序排列) e2 ,然后对 arr1 从 e2 元素开始往后的所有元素向后移,最后把 e1 插入到原来 e2 所在的位置。这样反复地对 arr2 进行循环,直到 arr2 中所有的待插入的元素都插入到 arr1 中。 
Java代码 
package sort;  
  
import java.util.Comparator;  
  
/** 
 *  直接插入排序算法 
 * @author jzj 
 * @date 2009-12-5 
 *  
 * @param <E> 
 */  
public class InsertSort<E extends Comparable<E>> extends Sort<E> {  
  
    /** 
     * 排序算法的实现,对数组中指定的元素进行排序 
     * @param array 待排序的数组 
     * @param from 从哪里开始排序 
     * @param end 排到哪里 
     * @param c 比较器 
     */  
    public void sort(E[] array, int from, int end, Comparator<E> c) {  
  
        /* 
         * 第一层循环:对待


相关文档:

Java NIO API详解

 
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......

Java 5.0 泛型之 通配符

package Demo;
// 通配符
class Info14<T> {
private T var; // 定义泛型变量
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // 直接打印
return this.var.toString();
}
}
public class GenericsDemo14 {
public ......

Java 5.0 泛型之 Java泛型数组

package Demo;
// Java泛型数组
public class GenericsDemo30 {
public static void main(String args[]) {
Integer i[] = fun1(1, 2, 3, 4, 5, 6); // 返回泛型数组
fun2(i);
}
public static <T> T[] fun1(T... arg) { // 接收可变参数
return arg; // 返回泛型数组
}
public static <T> ......

Java关键字介绍之final

总结关键字final的用法。
author: ZJ 07-3-16
Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]
在Java中声明属性、方法和类时,可使用关键字final来修饰。final变量即为常量,只能赋值一次;final方法不能被子类重写;final类不能被继承。
1.final成员
声明 final 字段有助于优化器作出更好的优化决定,因为如果 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号