插入排序演算法:
演算法原理:
選擇第二個元素然後與他之前的元素對比大小,發現匹配條件且位置最前的元素交換位置,如此迴圈,直到對比完所有的元素。
例如:有個陣列: ,要求從小到大排序
第一輪第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,直到找到已排序的元素小於或者等於新元素的位置 將...