思路:每次將一個待排序的元素按其關鍵碼的大小插入到一個已經排好序的有序序列中,直到全部元素排好序
代碼:
public class Insert {
public static void main(String[] args) {
int r[]={49,27,65,97,76,13,38,5,12,56}; //給出原始數的序列
int i,j,temp,k; //定義變量名稱
System.out.println("放置初始序列的數組爲:");//輸出初始序列
for(i=0;i<10;i++){
System.out.print(r[i]+" ");
}
for(i=1;i<10;i++){
temp=r[i]; //設置哨兵,暫存當前值
for(j=i-1;j>=0&&temp<r[j];j--){ //尋找插入位置
r[j+1]=r[j];
}
r[j+1]=temp; //大於當前值的插到當前值後面
}
System.out.println("\n"+"排序好的數組爲:"); //輸出新序列
for(i=0;i<10;i++){
System.out.print(r[i]+" ");
}
}
}
運行結果: