请问,数据结构里的各种排序方法及其效率分析怎样用C语言实现?

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:44:55
题目要求:
1)对起泡排序,直接排序,简单选择排序,快速排序,希尔排序,堆排序算法进行比较。
2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标有:关键字参加比较次数和关键字的移动次数(关键字进行一次交换操作记为3次移动)
3)输出比较结果。

在visual c++6.0里面编译 你自己慢慢 看
#include "stdafx.h"
#define MAXSIZE 50
#include <stdio.h>
typedef struct
{
int key;
}RECNODE;

int b,t;
int MakeList(RECNODE *r)
{
int j,k;
printf("\n请输入初始数据(每个数据以空格隔开,-1结束): ");
k=0;
scanf("%d",&j);
while(j!=-1)
{
k++;
r[k].key=j;
scanf("%d",&j);
}
return k;
}

void UndealoutList(RECNODE *r,int n)
{
int i;
printf("\n未排序前的数据 : ");
for(i=0;i<n;i++)
printf(" %d",r[i+1].key);
printf("\n\n");
}

void DealoutList(RECNODE*r,int n)
{
int i;

printf("排序后的数据 : ");
for(i=0;i<n;i++)
printf(" %d",r[i+1].key);
printf("\n\n");
printf("交换或比较的次数: %d\n",b);
p