没有合适的资源?快使用搜索试试~ 我知道了~
首页内部排序算法比较 课程设计
资源详情
资源评论
资源推荐
内部排序算法比较
实习报告
题目:编制一个演示内部排序算法比较的程序
班级:计算机 074 姓名:苏林铃 学号:0713022104 完成日期:2009.6.11
一. 需求分析
1.本演示程序对以下 6 种常用的内部排序算法进行实测比较:起泡排序,直接插入排序,简单选
择排序,快速排序,希尔排序,堆排序。
2.待排序表的元素的关键字为整数.用正序,逆序和不同乱序程度的不同数据作测试比较.比较
的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为 3 次移动)。
3.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”下,用户可
由键盘输入待排序的表长(100 至 1000)和不同测试数据的组数(8 至 18)。每次测试完
毕,列表显示各种比较指标值。
4.最后对测试结果作出简单分析,包括对各组数据得出结果波动大小给予解释。
1.可排序的抽象数据类型定义:
ADT OrderableList{
数据对象:D={ai|ai∈IntegerSet,i=1,2,…n,n≥0}
数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}
基本操作:
InputList(n)
操作结果:构造一个长度为 n,元素依次为 1,2,3…,n 的有序表。
ListLength()
操作结果:返回可排序表的长度。
void BubbleSort()
操作结果:进行起泡排序,返回关键字比较次数和移动次数
void InsertSort()
操作结果:进行插入排序,返回关键字比较次数和移动次数
void SelectSort()
操作结果:进行选择排序,返回关键字比较次数和移动次数
void QuickSort()
操作结果:进行快速排序,返回关键字比较次数和移动次数
void ShellSort()
操作结果:进行希尔排序,返回关键字比较次数和移动次数
void HeapSort()
操作结果:进行堆排序,返回关键字比较次数和移动次数
OutputlList()
操作结果:输出未排序和排序后的关键字,返回关键字比较次数和移动次数
}ADT OrderablrList
2.本程序包含两个模块:
1)主程序模块:
Void main(){
初始化;
Do{
接受命令;
处理命令;
}while(“命令”!=“推出”);
}
2)可排序表单元模块——实现可排序表的抽象数据类型;
各模块之间的调用关系如下:
主程序模块
↓
可排序表单元模块
三.详细设计
程序代码如下:
#include <stdio.h>
#include<stdlib.h>
#define MAXSIZE 50
typedef struct
(
int key;
}DATA;
int b,t;
int InputList(DATA *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 UnsortList(DATA *r,int n) //输出未排序的数据
{
int i;
printf("\n 未排序前的数据 : ");
for(i=0;i<n;i++)
printf(" %d",r[i+1].key);
printf("\n\n");
}
void Output(DATA *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);
printf("排序的趟数: %d\n",t);
}
void InsertSort(DATA *r,int n) //直接插入排序
{
int i,j;
b=0,t=0;
for(i=2;i<=n;i++)
{
r[0]=r[i];
j=i-1;
while(r[0].key<r[j].key)
{
r[j+1]=r[j];
j--;
b++;
}
r[j+1]=r[0];
b++;
t++;
}
}
void BubleSort(DATA *r,int n) //冒泡排序
{
int i,j;
b=0,t=0;
DATA temp; //临时存放单元
for(i=1;i<n;i++)
{
for(j=n-1;j>=i;j--)
if(r[j+1].key<r[j].key)
{
temp=r[j+1];
r[j+1]=r[j];
r[j]=temp;
b++;
}
剩余11页未读,继续阅读
ntdx0713022104
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5