改良插入排序

2022-01-29 09:35:38 字數 799 閱讀 6105

/*

說明:插入排序法由未排序的後半部分前端取出乙個值,插入已排序前半部分的適當位置,概念簡單但速度不快。

排序要加快的基本原則之一,是讓後一次的排序進行時,盡量利用前一次排序後的結果,以加快排序的速度,shell排序法即是基於此一概念來改良

插入排序法。

解法:略

*/#include

#include

#include

#define max 10

#define swap(x, y)

void shellsort(int

);int main(void

);

inti;

srand(time(null));

printf(

"排序前: \n");

for(i = 0; i < max; i++)

shellsort(number);

//system("pause");

return0;

}void shellsort(int

number)

else} }

}printf(

"\n gap = %d:

", gap);

for(i = 0; i < max; i++)

printf("\n

");gap /= 2

; }

}

執行結果:

改良版插入排序

我們來看一下插入排序定義 插入排序是由未排序的後半部前端取出乙個值,插入已排序前半部的適當位置,概念簡單但速度不快。改良版的插入排序是讓後一次的排序進行時,盡量利用前一次排序後的結果,以加快排序的速度,shell排序法即是基於此概念來改良插入排序法。解法 假設要排序的元素有n個,則每次進行插入排序時...

Shell排序(改良的插入排序)

shell排序演算法最初是由d.l shell於1959年提出,假設要排序的元素有n個,則每個進行插入排序是並不是所偶的元素同時進行,而是去一段間隔。shell首先將間隔設定為n 2,然後跳躍的進行插入排序,再來將間隔設定為n 4,跳躍進行排序動作,再來設定時間間隔為n 8 n 16,知道間隔為1之...

插入排序 折半插入排序

折半插入排序 binary insertion sort 直接插入排序採用順序查詢法查詢當前記錄在已排好序的序列中插入位置,這個 查詢 操作可利用 折半查詢 來實 現,由此進行的插入排序稱之為折半插入排序 binary insertion sort 演算法思想 1 將待排序的記錄存放在陣列r 1.n...