對比兩個元素,把較小(或較大)的元素取出來交給臨時變數,然後從這個元素的位置開始,向前查詢比這個元素小的資料,如果前面元素大於該元素,前面的元素向後移動,最終把這個元素排在對應的位置上。
2,12,5,57,31,31,90,32,95,76
第一次比較2和12,不做變動。
第二次比較12和5,12向後移動。5插入在2的後面。
2,5,12
,57,31,31,90,32,95,76
第三次比較12和57,不做變動。
第四次比較57和31,57向後移動,31插入到12後面。
2,5,12,31,57,31,90,32,95,76
第五次比較57和31,57向後移動,31插入到31後面。
2,5,12,31,31,
57,90,32,95,76
第六次比較57和90,不做變動。
第七次比較90和32,57和90向後移動,32插入到31後面。
2,5,12,31,31,32,57,90
,95,76
第八次比較90和95,不做變動。
第九次比較95和76,95和90向後移動,76插入到57後面。
2,5,12,31,31,32,57,76,90,95
void insertsort(int a, int nlen)
a[j + 1] = temp;
} }}
該**使用兩層迴圈,並且資料在重複的移動,時間效率為o(n^2)。
排序演算法之插入排序
排序演算法之插入排序 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....