package com.sort;
import java.util.LinkedList;
import java.util.List;
/**
* @author 鲁志明 E-mail: 13688601037@139.com
* @version 创建时间:2013-5-26 上午8:17:14
*
*/
public class InsertionSort {
public static void insertionSort(int[] array)
{
int out;
int in;
/**
* out变量从1开始,即假设第一个数字已经是有序的了
* 然后将后面的数字逐个插入
*/
for(out = 1 ; out < array.length ; out ++)
{
int temp = array[out];
in = out;
/**
* 如果in大于0,即in变量还没有走到数组的最左边
* 并且
* 如果数组的后一个元素小于前一个元素 , 开始由后向前逐个比较
*/
while(in>0&&temp<=array[in-1])
{
// 后一个元素向前移动一个位置
array[in] = array[in -1 ];
// 前一个元素向后移动一个位置
array[in-1] = temp;
// in--然后继续比较是否是后一个元素小于前一个元素
in--;
}
}
}
public static void main(String[] args) {
int[] array = new int[]{3,1,2,4,6,5,8,7,9};
insertionSort(array);
for(int tem: array)
{
System.out.println(tem);
}
}
}
我写的这个是Java实现插入排序,大家有什么不是很明白的地方可以和我交流。共同进步!