詳細解析直接插入排序和希爾排序

2021-09-02 15:17:48 字數 526 閱讀 8870

直接插入排序:

(1) 基本思想:

每一趟將乙個待排序的記錄,按其關鍵字的大小插入到已經排好序的一組記錄的適當位置上,直到所有待排序記錄全部插入為止。

直接用乙個事例來解釋說明:

給一無序的數列:49,38,65,97,76,13,27,49

對於這個進行直接插入排序,如圖:

**:

#includevoid insertsort(int *arr,int len) //直接插入排序

arr[j+1]=tmp; //更新儲存的tmp值 }}

void show(int*arr,int len)

arr[j+dk]=tmp; }}

void shellsort(int *arr,int len,int dk,int dlen)// 加乙個增量陣列

}

直接插入排序和希爾排序

if defined insertsort h define insertsort h include define maxsize 100 typedef int keytype 關鍵字型別用來比較 typedef char infotype 其他型別的資訊 typedef structrecty...

直接插入排序和希爾排序

一 插入排序 在一組無序的陣列中,假設第乙個有序,每一次陣列中剩餘的元素與第乙個比較,然後逐個插入到乙個有序的序列中,直到這個陣列所有的數字有序為止 二 直接插入演算法 演算法思路 1 我們先假設第乙個有序的數字下標為end,2 下乙個要插入的數字 tmp 繼續構成有序就直接插入,此時end向後挪一...

直接插入排序和希爾排序

一 直接插入排序 插入排序 1.1 基本思想和原理 將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,它有兩個作用 進入查詢 插入位置 迴圈之前,它儲存了r i ...