插入排序之直接插入排序

2021-09-02 15:07:29 字數 975 閱讀 4016

個人部落格:

title: 插入排序之直接插入排序

列表第乙個元素和前面元素比較,如果小於前面元素(其實不存在),則交換位置。(這步其實可以沒有)

列表第二個元素和前面元素(第乙個元素)比較,如果小於前面元素,則交換位置。

列表第三個元素和前面元素(第二個元素)比較,如果小於前面元素,則交換位置。如果和前面元素交換了位置,現在在第二個位置上,則接著繼續和前面元素比較(第乙個元素),如果小於前面元素,接著再次交換位置,然後再次重複比較過程…

繼續重複以上過程,直到最後乙個元素完成比較

最壞時間複雜度

最優時間複雜度

平均時間複雜度

o(n^2)

o(n)

o(n^2)

o(1)

穩定

**穩定性定義:**排序前後兩個相等的數相對位置不變,則演算法穩定。

class

insertionsort);

for(

int i=

0;i) system.out.

println()

;}public

int[

]directinsertsort

(int

source)}}

return source;

}}

插入排序之直接插入排序

插入排序概述 有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為...

插入排序之直接插入排序

依次將每個記錄 無序表 插入到乙個已排好序的有序表中,得到乙個新的,記錄增加1的有序表 向撲克牌中插入新牌,圖書館整理圖書 有n個數,將第乙個數看做乙個有序表,從第二個開始從後向前比較,第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小...

插入排序之直接插入排序

packagesort.algorithm publicclassdirectinsertsort inttemp,j for int i 1 i data.length i data j 1 temp 輸出排序好的資料 for int k 0 k data.length k 直接插入排序,一般對於...