排序演算法 直接插入排序

2021-06-21 22:33:58 字數 566 閱讀 8545

思想:

每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。

第一趟比較前兩個數,然後把第二個數按大小插入到有序表中; 第二趟把第三個資料與前兩個數從前向後掃瞄,把第三個數按大小插入到有序表中;依次進行下去,進行了(n-1)趟掃瞄以後就完成了整個排序過程。

演算法複雜度:如果目標是把n個元素的序列公升序排列,那麼採用插入排序存在最好情況和最壞情況。

最好情況就是,序列已經是公升序排列了,在這種情況下,需要進行的比較操作需(n-1)次即可。

最壞情況就是,序列是降序排列,那麼此時需要進行的比較共有n(n-1)/2次。

插入排序的賦值操作是比較操作的次數減去(n-1)次。平均來說插入排序演算法複雜度為o(n2)。因而,插入排序不適合對於資料量比較大的排序應用。但是,如果需要排序的資料量很小,例如,量級小於千,那麼插入排序還是乙個不錯的選擇。

package com.liuhao;

public class insertionsort

a[j+1] = temp;

}return a;

}}

排序演算法 插入排序 直接插入排序

package 插入排序 直接插入排序 從後向前找到合適位置後插入 穩定 基本思想 每步將乙個待排序的記錄,按其順序碼大小插入到前面已經排序的字序列的合適位置 從後向前找到合適位置後 直到全部插入排序完為止。public class 直接插入排序 system.out.println 排序之前 fo...

排序演算法 插入排序 直接插入排序

當插入第i i 1 個元素時,前面的v 0 v i 1 等i 1個 元素已經有序。這時,將第i個元素與前i 1個元素v i 1 v 0 依次比較,找到插入位置即將v i 插入,同時原來位置上的元素向後順移。在這裡,插入位置的查詢是順序查詢。直接插入排序是一種穩定的排序演算法,其實現如下 public...

排序演算法 直接插入排序

說到排序演算法,我們常用的也就7種,即 直接插入排序,希爾排序,簡單選擇排序,堆排序,氣泡排序,快速排序,歸併排序。下面我將依次詳細地介紹這幾種排序演算法。1 直接插入排序 插入,即表示將乙個新的資料插入到乙個有序陣列中,並繼續保持有序。例如有乙個長度為n的無序陣列,進行n 1次的插入即能完成排序 ...