思路是:每次從未排好的序列中選出第乙個元素插入到已排好的序列中。
步驟可以大致歸納如下:
1. 從未排好的序列中拿出首元素,並把它賦值給temp變數;
2. 從排好的序列中,依次與temp進行比較,如果元素比temp大,則將元素後移(實際上放置temp的元素位置已經空出)
3. 直到找到乙個元素比temp小, 將temp放入該位置;
時間複雜度:o(n^2)
**:
#includevoid main()
; int i, j, key;
for (j = 1; j<6; j++)
//key牌此時一直在手中,未插入
a[i + 1] = key;//插入key牌
} for (i = 0; i < 6; i++)
}
排序演算法 2 插入排序
插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序 直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中...
排序演算法2 插入排序
插入排序的中心思想就是將乙個元素插入到已經排好序的陣列當中。陣列a n 初始時,a 0 自成一格有序區,無序區為a 1 n 1 令i 1 將a i 併入當前有序區a 0 i 1 中形成有序區間 i 並重複第二步直到 i n 1 include include include myfunctions....
排序演算法2 插入排序
插入排序是通過不斷插入待排序的元素完成整個排序過程。插入排序是一種很簡單的排序方式,基本思想就是將乙個元素插入到已經排序好的序列中,從而形成乙個新的有序序列。它重複地選擇未排序的元素,將其插入已經排序好的序列中,直到沒有待排序元素時,整個排序過程完成。插入排序的工作方式就像大家打撲克牌時抓牌一樣。開...