插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌朝下,然后,我们每次从桌子上拿走一张牌并把它插入左手中俄正确位置。拿在左手的牌总是排好序的。
对于插入排序,参数是一个长度为n的数组 A[n]
public class InsertionSort {
public static void main(String[] args) {
int[] A= new int[10];
A[0]=9;
A[1]=4;
A[2]=6;
A[3]=5;
A[4]=2;
A[5]=1;
A[6]=12;
A[7]=7;
A[8]=10;
A[9]=9;
//从第二个开始
for (int j=1;j<A.length;j++){
int key = A[j];
int i=j-1;
while (i>=0 && A[i]>key){
A[i+1]=A[i];
i--;
}
A[i+1]=key;
}
for (int i:A){
System.out.println(i+" ");
}
}
}
算法复杂度O(n^2)