java算法之插入排序

package com.hym.test.algorithms;

public class InsertSort {
	int[] arrayTest = { 5, 26, 1, 783, 23, 2, 62, 9, 46 };

	public void insertSort() {
		int in, out;
		for (out = 1; out < arrayTest.length; out++) {
			int temp = arrayTest[out];
			in = out;

			while (in > 0 && arrayTest[in - 1] >= temp) {
				arrayTest[in] = arrayTest[in - 1];
				--in;
			}
			arrayTest[in] = temp;
		}
	}

	public static void main(String[] args) {
		InsertSort sort = new InsertSort();
		sort.insertSort();

		for (int i = 0; i < sort.arrayTest.length; i++) {
			System.out.print(sort.arrayTest[i] + " ");
		}
	}

}


有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外,而第二部分就只包含这一个元素。在第一部分排序后,再把这个最后元素插入到此刻已是有序的第一部分里的位置

包括:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。

http://baike.baidu.com/view/396887.htm

你可能感兴趣的:(java算法)