資料結構例程 插入排序之希爾排序

2021-09-23 17:58:13 字數 1388 閱讀 4424

本文是[資料結構基礎系列(9):排序]中第3課時[插入排序之希爾排序]的例程。

1.希爾排序

#include 

#define maxsize 20

typedef

int keytype; //定義關鍵字型別

typedef

char infotype[10];

typedef

struct

//記錄型別

rectype; //排序的記錄型別定義

void shellsort(rectype r,int n) //希爾排序演算法

r[j+gap]=tmp;

j=j-gap;

}gap=gap/2; //減小增量

}}int main()

; for (i=0; iprintf("排序前:");

for (i=0; iprintf("%d ",r[i].key);

printf("\n");

shellsort(r,n);

printf("排序後:");

for (i=0; iprintf("%d ",r[i].key);

printf("\n");

return

0;}

2.排序中輸出每一趟的中間結果

#include 

#define maxsize 20

typedef

int keytype; //定義關鍵字型別

typedef

char infotype[10];

typedef

struct

//記錄型別

rectype; //排序的記錄型別定義

void shellsort(rectype r,int n) //希爾排序演算法

r[j+gap]=tmp;

j=j-gap;

}printf("gap=%d:",gap);

for (k=0; kprintf("%d ",r[k].key);

printf("\n");

gap=gap/2; //減小增量

}}int main()

; for (i=0; iprintf("排序前:");

for (i=0; iprintf("%d ",r[i].key);

printf("\n");

shellsort(r,n);

printf("排序後:");

for (i=0; iprintf("%d ",r[i].key);

printf("\n");

return

0;}

資料結構例程 插入排序之希爾排序

1.希爾排序 include define maxsize 20 typedef int keytype 定義關鍵字型別 typedef char infotype 10 typedef struct 記錄型別 rectype 排序的記錄型別定義 void shellsort rectype r,i...

資料結構之希爾排序(插入排序)

希爾排序 shell s sort 又稱 縮小增量排序 diminishing increment sort 是插入排序的一種,因d.l.shell於1959年提出而得名。希爾排序的誕生是由於插入排序在處理大規模陣列的時候會遇到需要移動太多元素的問題。希爾排序的思想是將乙個大的陣列 分而治之 劃分為...

資料結構 插入排序 希爾排序

一 插入排序 1 介紹 插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序在實現上,通常採用in place排序 即只需用到o 1 的額外空間的排序 因而在從後向前掃...