Java插入排序代码整理

package boke.sort;

/**
 * 插入排序
 * 
 * @since jdk1.5及其以上
 * @author 毛正吉
 * @version 1.0
 * @date 2010.05.24
 * 
 */
public class InsertSort {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int maxSize = 100;
		InsertSort bs = new InsertSort(maxSize);

		bs.insert(77);
		bs.insert(66);
		bs.insert(22);
		bs.insert(99);
		bs.insert(85);
		bs.insert(37);
		bs.insert(75);
		bs.insert(64);
		bs.insert(15);
		bs.insert(35);

		bs.output(); // 原始输出
		bs.insertSort(); // 排序
		bs.output(); // 排序输出

	}

	private long[] a; // 整型数据容器
	private int nElems; // 元素个数

	/**
	 * 构造方法
	 * 
	 * @param maxSize
	 */
	public InsertSort(int maxSize) {
		a = new long[maxSize];
		nElems = 0;
	}

	/**
	 * 容器放入数据
	 * 
	 * @param value
	 */
	public void insert(long value) {
		a[nElems++] = value;
	}

	/**
	 * 输出容器数据
	 */
	public void output() {
		for (int j = 0; j < nElems; j++) {
			System.out.print(a[j] + " ");
		}
		System.out.println("");
	}

	/**
	 * 插入排序
	 */
	public void insertSort() {
		int out, in;

		for (out = 1; out < nElems; out++) {
			long temp = a[out];
			in = out;
			
			while (in > 0 && a[in-1] >= temp) {
				a[in] = a[in - 1];
				--in;
			}
			
			a[in] = temp;
		}
	}
}

你可能感兴趣的:(java,J#)