插入排序演算法

2021-09-26 07:47:47 字數 885 閱讀 8002

通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應的位置並插入。 插入排序非常類似於整撲克牌。在開始摸牌時,左手是空的,牌面朝下放在桌上。接著,一次從 桌上摸起一張牌,並將它插入到左手一把牌中的正確位置上。為了找到這張牌的正確位置,要將 它與手中已有的牌從右到左地進行比較。無論什麼時候,左手中的牌都是排好序的。

如果輸入陣列已經是排好序的話,插入排序出現最佳情況,其執行時間是輸入規模的乙個線性函 數。如果輸入陣列是逆序排列的,將出現最壞情況。平均情況與最壞情況一樣,其時間代價是(n2

public

class

insertsort

; insertsort.

sort

(arr)

; system.out.

println

(arrays.

tostring

(arr));

arr =

newint

; arrays.

sort

(arr)

; system.out.

println

(arrays.

tostring

(arr));

}public

void

sort

(int

arr)

}private

void

sortd

(int vi,

int j)

else}}

private

intcomp

(int vi,

int vj)

else

if(vi > vj)

else

}}

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...

演算法 插入排序

include include 插入排序 n 2為的效率。具體思想 將陣列分為兩部分,一部分是有序的,一部分為無序的 然後從無序中選取乙個數插入在有序的數中的恰當的位置,以此迭代,直到無序的數全部遍厲完畢 void insert sort int a,int n a j tmp break retu...

插入排序演算法

下面這段話摘自 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將...