傳統演算法04 插入排序

2021-10-06 11:57:57 字數 1131 閱讀 6439

插入排序演算法:

演算法原理:

選擇第二個元素然後與他之前的元素對比大小,發現匹配條件且位置最前的元素交換位置,如此迴圈,直到對比完所有的元素。

例如:有個陣列: ,要求從小到大排序

第一輪第1次排序 ,拔出第二個元素6

第一輪第2次排序

第一輪第3次排序

第一輪第4次排序

第一輪第5次排序

第一輪第6次排序(前面的元素沒有比8大的)

第一輪第7次排序

第二輪第1次排序,拔出第三個元素6 (前面的元素沒有比6大的)

第二輪第2次排序

第二輪第3次排序

第二輪第4次排序

第二輪第5次排序(前面的元素沒有比8大的)

第二輪第6次排序

第三輪第1次排序,拔出第四個元素6(前面的元素沒有比6大的)

第三輪第2次排序

第三輪第3次排序

第三輪第4次排序(前面的元素沒有比8大的)

第三輪第5次排序

第四輪第1次排序,拔出第五個元素6(前面的元素沒有比6大的,6:怎麼老是我)

第四輪第2次排序

第四輪第3次排序(前面的元素沒有比8大的)

第四輪第4次排序

第五輪第1次排序,拔出第六個元素6(前面的元素沒有比6大的,6:-_-)

第五輪第2次排序(前面的元素沒有比8大的)

第五輪第3次排序

第六輪第1次排序,拔出第七個元素8(前面的元素沒有比8大的,6:nice)

第五輪第2次排序

完成排序

搞定上**

public

static

void

main

(string[

] args)

;sort

(arrs)

;for

(int i =

0; i < arrs.length; i++)}

private

static

void

sort

(int

arrs)

else

} arrs[j +1]

= value;

}}

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第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,直到找到已排序的元素小於或者等於新元素的位置 將...