1、演算法思路:每趟將乙個待排序的元素作為關鍵字,按照其關鍵字值得大小插入到已經排好的部分的適當位置上,知道插入完成。
2、演算法過程
舉個栗子(第一趟的排序過程)
原始序列:49、38、65、97、76、13、27、49
1)開始以第乙個元素49為關鍵字,看成乙個序列,其餘數看成另乙個序列,此時乙個關鍵字數49序列是有序的。
結果:
2)插入38。38<49,所以49向後移動乙個位置,38插入到原49位置
結果:
3)插入65。65>49,所以不需要移動,65插入49之後
結果:
4)插入97。97>65,所以不需要移動,97插入65之後
結果:
5)插入76。76<97,所以97向後移動乙個位置,繼續比較,76>65,65不需要移動,76插入到65之後,97之前的位置
結果:
6)插入13。13<97,所以97向後移動乙個位置,繼續比較,13>76,所以76向後移動乙個位置不需要移動,繼續比較,13>65,逐次比較,發現13應插入最前位置
結果:
7)插入27。27<97,所以97向後移動乙個位置,繼續比較,27>76,所以76向後移動乙個位置不需要移動,繼續比較,27>65,逐次比較,發現27應插入13之後,38之前
結果:
8)最後插入剩餘元素49。同理逐次比較,發現49=49<65,應插入49之後,65之前位置
結果:
排序結束,得到乙個有效序列
public class insertionsort ;
insertionsort(arr, arr.length);
}public static void insertionsort(int arr, int n)
arr[j] = temp;
system.out.println(arrays.tostring(arr));}}
}
九大排序演算法 插入排序
插入排序是通過保證前n位是有序的,當第n 1位需要插入時,反向掃瞄前n位的大小,碰到大於該數的就向後移動一位,直到小於該數停止,即需要插入的位置。示意圖 實現 public static void insert int arr else arr j 1 tmp system.out.println ...
八大排序演算法之插入排序
所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減的排列起來的操作。排序演算法,就是如何使得記錄按照要求排列的方法。排序演算法在很多領域得到相當地重視,尤其是在大量資料的處理方面。乙個優秀的演算法可以節省大量的資源。在各個領域中考慮到資料的各種限制和規範,要得到乙個符合實際的優秀...
八大排序演算法之插入排序
排序有內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。先上圖 我先從上往下挨個介紹 1 插入排序 插入排序時間複雜度最優為 o n 情況是陣列為已經排好的順序 最差為o n 2 情況為陣列為排好的逆序 平均...