基礎排序演算法演示

2021-04-06 21:08:42 字數 2532 閱讀 1055

滿腦子都是階段/狀態/決策……學無止境呀

發一點基本的排序演算法,分成很多個檔案寫的,每個檔案前面帶了注釋,一起發出來,結構如下:

基礎排序演算法檔案結構

sort.h

標頭檔案 

main.c

主演示程式 

printkeys.c

資料輸出

ifcontinue.c

演示控制

random.c 

隨機初始化資料

bubblesort.c 

氣泡排序演算法

quicksort.c 

快速排序演算法

insort.c

插入排序演算法

shellsort.c

希爾排序演算法

演示按 隨機化資料->輸出->排序->輸出 的流程進行,演算法很簡單不想多說。

/**/

/*sort.h: 排序演算法演示標頭檔案 

*/

#include 

<

stdio.h

>

#define

maxn 100

typedef 

struct

... record;

/**/

/*幾種排序演算法演示

by danmarner

email: [email protected] 

*/

#include 

"sort.h

"int

random(record r,

intn);

intprintkeys(record r,

intn);

intifcontinue(

void

);void

inssort (record r,

intn);

void

shellsort (record,

intn);

void

bubblesort(record r,

intn);

void

quicksort (record r,

ints,

intt);

intmain(

void

)...

/**/

/*printkeys.c: 輸出排序關鍵字 

*/

#include 

"sort.h

"int

printkeys (record r,

intn)

...

/**/

/*ifcontinue.c: 控制是否繼續演示 

*/

#include 

<

stdio.h

>

#include 

<

stdlib.h

>

intifcontinue(

void

)...

/**/

/*random.c: 用隨機數給r[0].key-r[n-1].key賦值 

*/

#include 

<

stdlib.h

>

#include 

<

time.h

>

#include 

"sort.h

"int

random (record r,

intn)

...

/**/

/*bubblesort.c: 演示氣泡排序 

*/

#include 

"sort.h

"void

bubblesort(record r,

intn)

...}}

/**/

/*quicksort.c 快速排序演算法 

*/

#include 

"sort.h

"void

quicksort (record r,

ints,

intt)

...r[low]

=pivot;

if(s

<

low) quicksort(r,s,low-1

);if

(t>

high) quicksort(r,high+1

,t);}

/**/

/*inssort.c: 插入排序演算法 

*/

#include 

"sort.h

"void

inssort (record r,

intn)

...}

/**/

/*shellsort.c: 希爾排序演算法

*/

#include 

"sort.h

"void

shellsort (record r,

intn)

...dk/=2

;}}

排序演算法演示

下面是排序演算法演示程式,比較直觀顯示排序演算法執行規律 flash 200,200 有關裡面三種排序演算法說明如下 1.插入排序 首先新建乙個空列表,用於儲存已排序的有序數列 我們稱之為 有序列表 從原數列中取出乙個數,將其插入 有序列表 中,使其仍舊保持有序狀態。重複2號步驟,直至原數列為空。插...

演算法 氣泡排序演示

排序原理 1 比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置 2 對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大值。public class bubblesort 交換兩個位置的元素 private static void exe...

演算法 希爾排序演示

希爾排序是針對插入排序的改良版。排序原理 1 選定乙個增長量h,按照增長量h作為資料分組的依據,對資料進行分組 2 對分好組的每一組資料完成插入排序 3 減少增長量,最小減為1,重複第二步操作 希爾排序 public class shellsort while h 1 else h h 2 判斷兩個...