直接插入排序
基本思想:有一列数,把待排数字插入到前面已排好的数字序列中。
比如 n个数做直接插入排序 56,14,45,69,42,8,10
开始时有序表中只包含一个元素,无序组中有n-1个元素 有序表 无序表
56 14,45,69,42,8,10
从无序表取出第一个待排元素将它插入到有序表的适当位置 14, 56 45,69,42,8,10
(这里默认从小到大排列) 使之成为新的有序表 14, 45, 56 69,42,8,10
。。。。。。
重复n-1次可完成排序过程 8,10,14,42,45,56,69
JAVA实现程序:
package sort;
public class insertSort {
public insertSort(){
int[]array={56,14,45,69,42,8,10};
int temp=0;
for(int i=1;i<array.length;i++){
int j=i-1;
temp=array[i]; //array[i]是待排元素,赋值给临时变量temp
for(; j>=0 && temp<array[j]; j--) //待排元素与有序表中的元素从右到左一次比较,到合适位置停止
array[j+1]=array[j];
array[j+1]=temp;
}
for(int i:array)
System.out.print(i+" ");
}
}
原文:http://www.cnblogs.com/pianpianfeiye/p/3966920.html