实现思路:先对列表中的前两个值进行排序,接着将列表的第三个数插入已排序的值得恰当位置中,然后插入第四个值......每次插入,排好序的值的数目就会多一个,重复这个过程知道所有数排完。
示例代码:
public class InsertionSort {
public static <T extends Comparable<? super T>> void insertionSort(T[] data){
for(int index=1;index<data.length;index++){
T key=data[index];
int position=index;
while(position>0 && data[position-1].compareTo(key)>0){
data[position]=data[position-1];
position--;
}
data[position]=key;
}
}
}