排序演算法之插入排序

2021-10-08 16:05:37 字數 1223 閱讀 3904

概念(實現思想)

個人理解: 將乙個記錄插入到已排好序的序列中,從而得到乙個新的有序序列。將序列的第乙個資料看成是乙個有序的子串行,然後從第二個記錄逐個向該有序的子串行進行有序的插入,直至整個序列有序)

最壞時間複雜度為:o(n^2)

最好情況為o(n)

是穩定排序演算法

具體演算法實現:

1、將待排序序列第乙個元素看做乙個有序序列,把第二個元素到最後乙個元素當成是未排序序列;

2、取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;

3、如果該元素(已排序)大於新元素,將該元素移到下一位置;

4、重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;

5、將新元素插入到該位置後;

6、重複步驟2~5。

舉例

原始序列

​ 第一趟:

​ 6和2比較,6大於2,不交換位置

​ 序列為:2,6,4,3,7,5,1,9

​ 第二趟:

​ 4和6比較,4小於6,交換位置;4和2比較,4大於2,不交換位置

​ 序列為:2,4,6,3,7,5,1,9

​ 第三趟:

​ 3和6比較,3小於6,交換位置;3和6比較,3小於6,交換位置;3和4比較,3小於4,交換位置;

​ 3和2比較,3大於2,不交換位置

​ 序列為:2,3,4,6,7,5,1,9

​ 以此類推…

​ 得到最終的序列

​ 最後序列為:1,2,3,4,5,6,7,9

**實現

public

static

void

insert

(int

arr)

//從第二個數字開始比較

for(

int i =

1; i < arr.length -

1; i++)}

system.out.

println

(arrays.

tostring

(arr));

}private

static

void

swap

(int

arr,

int i,

int j)

排序演算法之插入排序

排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...

排序演算法之插入排序

排序演算法之插入排序 1 插入排序的思想 假設在乙個有序序列中 e 0 e i 1 這i 個元素已經排好序,則當要將第 i 1個元素 e 插入該序列時,只需將第 i 1個元素與從 e 0 開始到e i 1 元素進行比較,當發現第 j個元素 e j 在序列中應在 e 前,且 e j 1 應在e 後時,...

排序演算法之插入排序

本節主要分析插入排序演算法的直接插入排序和希爾 shell 排序 又稱縮小增量排序 1.直接插入排序 該排序是最簡單的排序方法,其基本思想是 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至i n為止,依次將r i 插入當前的有序區r 1....