1.實驗目的
(1)掌握常用排序方法的基本思想。
(2)通過實驗加深理解各種排序演算法。
(3)通過實驗掌握各種排序方法的時間複雜度分析。
(4)了解各種排序方法的優缺點及適用範圍。
2.實驗內容
(1)編寫直接插入排序程式。
(2)編寫希爾排序程式。
(3)編寫氣泡排序程式。
(4)編寫快速排序程式。
(5)編寫選擇排序程式。
(6)編寫歸併排序程式。
(7)編寫堆排序程式。
(8)程式執行時,要求能顯示每一趟的排序結果。
(9)設計乙個選擇式選單,以選單方式選擇上述排序程式。
排序子系統
1更新排序資料
2直接插入排序
3希爾排序
4氣泡排序
5快速排序
6選擇排序
7歸併排序
8堆排序
0返回請選擇選單號(0--8):
3.實驗程式
#include
#include
#include
#define l 8
#define false 0
#define ture 1
typedef struct
rectype;
typedef rectype seqlist[l+1];
int num;
seqlist r;
void insertsort();
void bubblesort();
void quicksort(int low,int high);
void shellsort();
void selectsort();
void mergesort();
int partition(int i,int j);
void heap();
void main()
printf("\n\t排序資料已經輸入完畢!");
ch1='y';
while(ch1=='y'||ch1=='y')if(ch2!='0')
}}void insertsort()
m++;
printf("\t第%d趟排序結果為(按【enter】鍵繼續):",m);
for(k=1;k<=l;k++)
printf("%5d",r[k].key);
getchar();
printf("\n");
}printf("\n\t排序的最終結果是:");
for(i=1;i<=l;i++)
printf("%5d",r[i].key);
printf("\n");
}void shellsort()
gap=gap/2;
m++;
printf("\t第%d趟排序結果為(按【enter】鍵繼續):",m);
for(k=1;k<=l;k++)
printf("%5d",r[k].key);
getchar();
printf("\n");
}printf("\n\t排序的最終結果是:");
for(i=1;i<=l;i++)
printf("%5d",r[i].key);
printf("\n");
}void bubblesort()
{ int i,j,k;
int exchange;
printf("\n\t原始資料為(按【enter】鍵開始排序):");
for(k=1;k<=l;k++)
printf("%5d",r[k].key);
資料結構實驗報告實驗六排序演算法
昆明理工大學資訊工程與自動化學院學生實驗報告 201 201 學年第一學期 課程名稱 資料結構開課實驗室年月日 一.實驗內容 排序演算法,包括直接插入排序,希爾排序,氣泡排序,快速排序,直接選擇排序,堆排序等等。二.實驗目的 1.掌握各種查詢演算法理解和實現 2.增強上機程式設計除錯能力 三.主要程...
資料結構實驗5 串子系統
驗證性實驗5 串子系統 班級學號 012301114114 姓名胡德文1 實驗目的 1 掌握串的特點及順序定長儲存的方式。2 掌握串的建立 連線 插入 刪除 顯示等操作。3 掌握串的查詢 取子字串 比較串大小的操作 4 掌握模式匹配的基本思想及其演算法。2 實驗內容 1 由使用者通過鍵盤輸入建立乙個...
資料結構實驗 排序
排序實驗 常用排序方法實現 實驗目的 1 熟悉常用的內部排序方法 插入排序 選擇排序 交換排序 基數排序和歸併排序 2 通過實驗,掌握排序的思路和方法,並能分析常用的排序方法的時間複雜度和穩定性。實驗要求 1 在vc 或tc環境下實現基本功能 2 先完成基本功能,基本功能為必做內容,有多餘時間的同學...