c语言插入排序_还有这种操作?C语言插入排序算法,一点就透
生活随笔
收集整理的這篇文章主要介紹了
c语言插入排序_还有这种操作?C语言插入排序算法,一点就透
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
插入排序算法是所有排序方法中最簡單的一種算法,其主要的實現思想是將數據按照一定的順序一個一個的插入到有序的表中,最終得到的序列就是已經排序好的數據。
更多C/C++資料群文件:569268376
直接插入排序是插入排序算法中的一種,采用的方法是:在添加新的記錄時,使用順序查找的方式找到其要插入的位置,然后將新記錄插入。
很多初學者所說的插入排序,實際上指的就是直接插入排序算法,插入排序算法還包括折半插入排序、2-路插入排序,表插入排序和希爾排序等,后序文章都會一一講到。
例如采用直接插入排序算法將無序表{3,1,7,5,2,4,9,6}進行升序排序的過程為:
- 首先考慮記錄 3 ,由于插入排序剛開始,有序表中沒有任何記錄,所以 3 可以直接添加到有序表中,則有序表和無序表可以如圖 1 所示:
圖 1 直接插入排序(1)
- 向有序表中插入記錄 1 時,同有序表中記錄 3 進行比較,1<3,所以插入到記錄 3 的側,如圖 2 所示:
圖 2 直接插入排序(2)
- 向有序表插入記錄 7 時,同有序表中記錄 3 進行比較,3<7,所以插入到記錄 3 的右側,如圖 3 所示:
圖 3 直接插入排序(3)
- 向有序表中插入記錄 5 時,同有序表中記錄 7 進行比較,5<7,同時 5>3,所以插入到 3 和 7 中間,如圖 4 所示:
圖 4 直接插入排序(4)
- 向有序表插入記錄 2 時,同有序表中記錄 7進行比較,2<7,再同 5,3,1分別進行比較,最終確定 2 位于 1 和 3 中間,如圖 5 所示:
圖 5 直接插入排序(5)
- 照此規律,依次將無序表中的記錄 4,9 和 6插入到有序表中,如圖 6 所示:
圖 6 依次插入記錄4,9和6
直接插入排序的具體代碼實現為:
#include //自定義的輸出函數void print(int a[], int n ,int i){ printf("%d:總結
以上是生活随笔為你收集整理的c语言插入排序_还有这种操作?C语言插入排序算法,一点就透的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (linux shell $)
- 下一篇: ddos免费攻击平台(ddos网站攻击器