算法——排序——插入排序图解动画
生活随笔
收集整理的這篇文章主要介紹了
算法——排序——插入排序图解动画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
插入排序
- 簡介
- 代碼示例
- 排序過程
- 時間復雜度
- 最差時間復雜度&平均時間復雜度
- 最優時間復雜度
- 空間復雜度
- 穩定性
簡介
插入排序,一般也被稱為直接插入排序。對于少量元素的排序,它是一個有效的算法。插入排序是一種最簡單的排序方法,它的基本思想是將一個記錄插入到已經排好序的有序表中,從而一個新的、記錄數增1的有序表。在其實現過程使用雙層循環,外層循環對除了第一個元素之外的所有元素,內層循環對當前元素前面有序表進行待插入位置查找,并進行移動。直到所有元素遍歷完畢,排序結束。
文章中使用的動畫網站地址,限 pc: 排序算法動畫
http://www.donghuasuanfa.com/sort
代碼示例
來自百度百科
public class Insertion{public static void sort(Comparable[] a){//將a[]按升序排列int N=a.length;for (int i=1;i<N;i++){//將a[i]插入到a[i-1],a[i-2],a[i-3]……之中for(int j=i;j>0&&(a[j].compareTo(a[j-1])<0);j--){Comparable temp=a[j];a[j]=a[j-1];a[j-1]=temp;}}} }排序過程
時間復雜度
| O(N2)O(N^2) O(N2) | O(N2)O(N^2) O(N2) | O(N)O(N) O(N) |
最差時間復雜度&平均時間復雜度
每輪比較的過程是選擇一個元素,然后和已經排序數組進行逐個比較,尋找合適的位置,此過程的時間復雜度為N。每輪比較后將當前元素插入到合適的位置。
然后共比較N輪。所以時間復雜度近似為:O(N2)O(N^2) O(N2)
最優時間復雜度
當數組為已排序數組,則每個元素只需要比較一次,所以對應的時間復雜度為: O(N)O(N)O(N)
動畫示例:
空間復雜度
插入排序由于無需額外空間,所以空間復雜度為 O(1)。
穩定性
兩個元素的值相同時如果最終排序完成后位置不變,則為穩定排序,如果位置變更則為不穩定排序。
排序算法中,如果數字相同,則無需變更位置,避免額外的操作。
插入排序,比較判斷時,無需更換位置也能達到排序效果,所以為穩定排序。
總結
以上是生活随笔為你收集整理的算法——排序——插入排序图解动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查找ADI原厂提供的DSP技术资料
- 下一篇: 手机网页form表单样式_超全面!13种