文档介绍:数据结构课程设计报告-排序器(排序算法验证及评价)
一、题目与要求:
问题描述:排序器(排序算法验证及评价)
要    求:实现以下六种排序算法,将给定的不同规模大小的数据文件(,,,)进行排序,,,。
1)、Shell排序;    2)、Quick排序
3)、锦标赛排序;   4)、堆排序
5)、归并排序;    6)、基数排序
在实现排序算法1)~4)时,统计数据元素比较的次数和交换的次数,进而对这四种算法在特定数据条件下的效率进行分析和评判。
二、题目分析:
首先需要读取4个不同大小文件中的数据,然后对其进行六种不同方法的排序,最后将结果储存在不同的文件中。其次,需要定义两个变量分别来记录前四种排序中数据的比较次数和移动次数,从而对这四种算法在特定数据条件下的效率进行分析和评判。
三、函数说明及概要设计:
以下为本程序中所涉及到的所有函数或重要变量,在设计思想中有具体解释:
/*全局变量*/
p;//用来记录数据间比较次数
int move;//用来记录数据的移动次数
四、本论文所付源代码请查阅本站:排序器(排序算法验证及评价)(C语言源代码)
/*主函数*/
int main()
/*菜单选择函数*/
int menu()
/*从文件中读取待排序数据*/
int ReadInfo(LinkList *p,char *f)
/*在屏幕上输出每次排序的数据数目,比较次数,移动次数*/
int PrintInfo(SqList *p)
/*排序结果写入文件中*/
int WriteInfo(SqList *p,char *f)
/*希尔排序*/
int Shell_Sort(SqList *p)
/*希尔排序中的插入函数*/
int Shell_Insert(SqList *p,int dk)
/*快速排序*/
int Quick_Sort(SqList *p)
/*递归形式的快速排序函数*/
int QSort(SqList *p,int low,int high)
/*快排中计算枢轴位置的函数*/
int Partition(SqList *p,int low,int high)
/*锦标赛排序*/
int Tournament_Sort(SqList *p)
/*锦标赛排序中的调整函数*/
int UpdateTree(DataNode *tree,int i)
/*堆排序*/
int Heap_Sort(SqList *H)
/*堆排序中的筛选函数*/
void HeapAdjust(SqList *H,int s,int m)
/*归并排序*/
int Merg_Sort(SqList *p)
/*递归形式的归并排序函数*/
int MSort(RedType SR[],RedType TR1[],int s,int t)
/*归并排序中将一维数组中前后相邻的两个有序序列归并为一个有序序列*/
int Merge(RedType SR[],