插入排序算法策略:排序值列中的前2个值,并在必要时交换它们。在相对于前2个值(有序的)的适当位置插入值列的第三个值。然后,在相对于前3个值 (有序的)的适当位置插入值列的第4个值。每进行一次插入操作,有序子集中的数值个数将递增1。重复该过程,直至值列中的所有值都按照次序排列为止。插入 过程需要移动数组中的其他值,为插入的元素腾出存储空间。
算法定义 http://baike.baidu.com/view/396887.html?tp=0_11
public class Insertion {
public static void insertionSort(Comparable []data){
for (int index=1;index<data.length;index++){
Comparable key = data[index];
int position = index;
//shift larger values to the right
while (position>0&&data[position-1].compareTo(key)>0){
data[position] = data[position-1];
position--;
}
data[position]=key;
}
}
public static void main(String []args){
Comparable []c={4,9,23,1,45,27,5,2};
insertionSort(c);
for (int i=0;i<c.length;i++)
System.out.println("插入排序:" +c[i]);
}
}