插入排序是一種簡單直觀的排序算法。它的原理是經過構建有序序列,對於未排序的數據,在已排序的序列中從後向前掃描,找到相應的位置,並插入數據造成有序排列。算法
要點:在有序隊列查找相應位置、移動數組。
算法實現描述數組
-一、取第一個元素,由於沒有比較是一個有序的隊列。 -二、從數組中取下一個數據,在以排序的隊列中從後往前掃描(從前日後),並判斷該元素與已排序元素的大小 。 -三、若排序隊列元素大於新元素,則將該元素移動到下一位置。 -四、重複 3 直到找到以排序元素小於或等於新元素的位置。 -五、將新元素插入該位置(i+1)。 -六、重複 2 - 5. 代碼
public static void main(String[] args) { int[] a = {1, 5, 88, 4, 5, 0, 84, 69, 12, 5, 10, 254}; System.out.println(Arrays.toString(a)); insertSort(a); System.out.println(Arrays.toString(a)); } public static void insertSort(int[] a){ int len = a.length; for(int i=1;i<len;i++){ int tem = a[i]; int j = i-1; for(;j>=0&&tem<a[j];j--){ a[j+1] = a[j]; } a[j+1] = tem; } }