資料結構和演算法 插入排序

2021-10-08 12:09:43 字數 716 閱讀 6960

它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到 o(1)}的額外空間的排序),因而在從後向前掃瞄過程中,需要反覆把已排序元素逐步向後挪位,為最新元素提供插入空間。

**git位址

public class insertionsort 

private static void insertionsort(int arr)}}

}private static void insertionsortbytemp(int arr)

arr[j] = temp;}}

}

時間複雜度分析:

雙層for迴圈,內層執行1+2+3+。。。+n-1=n*(n-1)/2

經過0.5n²+0.5n次迴圈完成排序,忽略常數項和低次項,時間複雜度為o(n²)

額外申請的變數僅max,因此空間複雜度為o(1)

最好情況:

整體有序,比較n次,時間複雜度o(n)

最壞情況:

整體逆序,時間複雜度o(n²)

穩定性:

穩定。插入排序向有序的小序列插入。前面已經有序,比較之後相等,不發生交換,因此穩定

資料結構和演算法 插入排序

直接插入排序的基本操作是將乙個記錄插入到已經排好的有序表中,從而得到乙個新的 記錄數增1的有序表。對於給定的一組記錄,初始時假定第乙個記錄自成乙個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直到最後乙個記錄插到有序序列中為止。當最好...

資料結構和演算法 插入排序

把 n 個待排序的元素看成乙個有序表和乙個無序表,開始時有序表只有乙個值,無序表有 n 1 個值,每次排序從無序表取出元素與有序表進行比對,插入適當位置成為新的有序表。把 n 個待排序的元素看成乙個有序表和乙個無序表,從無序列表取資料與有序列表對比並插入合適的位置 排序法平均時間 最差情形 穩定度額...

資料結構演算法 插入排序

插入排序演算法有兩種,一種是直接插入排序,一種是折半插入排序 直接插入排序 straight insertion sort 每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把...