package day01;
public class Insertion {
public static void sort(Comparable[] array){
for(int i=1;i<array.length;i++){
for(int j=i;j>0;j--){
//比较索引j和j-1处的值,如果索引j-1处的值比j处的值大,则交换数组,如果不大,则找到合适的位置,退出循环即可
if(greater(array[j-1],array[j])){
exch(array,j,j-1);
}
else{
break;
}
}
}
}
/*
* 比较v元素是否大于w元素
*/
private static boolean greater(Comparable v,Comparable w){
return v.compareTo(w)>0;
}
/*
* 数组元素i和j交换位置
*/
private static void exch(Comparable[] array,int i,int j){
Comparable temp;
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}