直接插入排序

2021-04-15 10:52:25 字數 497 閱讀 3494

直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i(i>=1)遍整理時,a1,a2,...,ai-1已經是排好序的子串行;取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i=1時實際上為空操作,故可直接從i=2開始。

為了便於控制迴圈結束,引入元素a[0],行時可以節省時間,

直接插入排序的演算法如下:

void strainsert(r,n)

int n,r; 結構型別

{int i,j;

//外層迴圈標識並決定待比較的數值。

for(i=2;i=1")。因此我們把稱為"監視哨",這種技巧,使得測試迴圈條件的時間大約減少一半,對於記錄數較大的檔案,節約的時間相當可觀。希望讀者能掌握這種技巧。

由此可見,直接插入排序演算法簡潔,易理解,容易實現。當序列中的記錄「基本有序」或n值較小時,它是最佳的排序方法。但是,通常待排記錄的數量n很大,此時直接插入排序就不適用了。

直接插入排序

直接插入排序的演算法思想 直接插入排序 straight insertion sort 的基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的 記錄數增 1 的有序表。根據該思想,編寫 如下 從已有序列的第0個記錄開始比較 public static void insertsort1 i...

直接插入排序

源文章url http student.zjzk.cn course ware data structure web paixu paixu8.2.1.1.htm 做過部分修改。1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至...

直接插入排序

直接插入排序本質上就是我們玩撲克牌的時候整理撲克所做的操作,舉個例子,現在手上有5張牌 4,8,6,7,10 按由大到小的順序來使用直接插入排序演算法排序 先預設最左邊的第一張牌為最小的4,讀取第二張8,因為8大於4,不予理會,再往後看,見到了6,6小於前一位的8,於是 將牌6取出,發現6又大於4,...