求用数据结构(C语言版)编写的排序系统

来源:百度知道 编辑:UC知道 时间:2024/09/20 13:37:27
我要详细的代码,不要提示等,有注释最好。
问题描述:设计一个程序,该程序具有下面功能:能够选择合适的排序算法,如插入排序,归并排序,快速排序,冒泡排序,希尔排序,简单选择排序和堆排序,依据该算法对某一数组进行排序,计算完成该操作所需时间
程序包含如上所有算法。程序中还要有排序界面:如1-插入,2-归并,3-快速,4-冒泡,5-希尔,6-简单选择,7-归并,8-退出。
谢谢啦!我急要啊

#include<stdio.h>
#include<stdlib.h>
#include <math.h>
#define L 8 //排序元素个数
#define FALSE 0
#define TRUE 1

typedef struct
{
int key;
char otherinfo;
}RecType;

typedef RecType Seqlist[L+1];
int num; //定义排序趟数的全局变量
Seqlist R;
//直接插入排序
void Insertsort()
{
int i,j,k,m=0;
printf("\n\t\t原始数据为(按回车键开始排序):\n\t\t");
for(k=1;k<=L;k++)
{
printf("%5d",R[k].key);
}
getchar();
printf("\n");
for(i=2;i<=L;i++)
{
if(R[i].key<R[i-1].key)
{
R[0]=R[i];
j=i-1;
while(R[0].key<R[j].key)
{
R[j+1]=R[j];
j--;
}
R[j+1]=R[0];
}
m++;
printf("\t\t第%d趟排序的结果为(按回车键开始排序):\n\t\t",m);
for(k=1;k<=L;k++)
{
prin