九大排序演算法之插入排序(原理及實現)

2021-08-28 04:44:04 字數 998 閱讀 2779

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 情況為陣列為排好的逆序 平均...