数据结构实验报告内排序+.docx
《数据结构实验报告内排序+.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告内排序+.docx(14页珍藏版)》请在冰点文库上搜索。
数据结构实验报告内排序+
(封面)
学生实验报告
学院:
国际经贸学院
课程名称:
数据结构
专业班级:
09电子商务
姓名:
学号:
学生实验报告
(经管类专业用)
学生姓名
学号
同组人
实验项目
内排序
■必修□选修
□演示性实验□验证性实验■操作性实验□综合性实验
实验地点
实验仪器台号
指导教师
实验日期及节次
2-1、2节
一、实验目的及要求:
1、目的
掌握内排序的方法。
2、内容及要求
实验题10.1编写一个程序实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
实验题10.2编写一个程序实现希尔插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
实验题10.3编写一个程序实现冒泡排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
实验题10.4编写一个程序实现快速排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
实验题10.5编写一个程序实现直接选择排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
二、仪器用具:
仪器名称
规格/型号
数量
备注
计算机
1
有网络环境
C语言
1
三、实验方法与步骤:
10.1
#include
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidInsertSort(RecTypeR[],intn)
{
inti,j,k;
RecTypetemp;
for(i=1;i{
temp=R[i];
j=i-1;
while(j>=0&&temp.key{
R[j+1]=R[j];
j--;
}
R[j+1]=temp;
printf("i=%d",i);
for(k=0;kprintf("%3d",R[k].key);
printf("\n");
}
}
voidmain()
{
inti,k,n=10;
KeyTypea[]={9,8,7,6,5,4,3,2,1,0};
RecTypeR[MAXE];
for(i=0;iR[i].key=a[i];
printf("\n");
printf("firstmainword");
for(k=0;kprintf("%3d",R[k].key);
printf("\n");
InsertSort(R,n);
printf("result");
for(k=0;kprintf("%3d",R[k].key);
printf("\n\n");
getch();
}
10.2
#include
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidShellSort(RecTypeR[],intn)
{
inti,j,d,k;
RecTypetemp;
d=n/2;
while(d>0)
{
for(i=d;i{
j=i-d;
while(j>=0&&R[j].key>R[j+d].key)
{
temp=R[j];
R[j]=R[j+d];
R[j+d]=temp;
j=j-d;
}
}
printf("d=%d:
",d);
for(k=0;kprintf("%3d",R[k].key);
printf("\n");
d=d/2;
}
}
voidmain()
{
inti,k,n=10;
KeyTypea[]={9,8,7,6,5,4,3,2,1,0};
RecTypeR[MAXE];
for(i=0;iR[i].key=a[i];
printf("\n");
printf("firstmainword");
for(k=0;kprintf("%3d",R[k].key);
printf("\n");
ShellSort(R,n);
printf("result");
for(k=0;kprintf("%3d",R[k].key);
printf("\n\n");
getch();
}
10.3
#include
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidBubbleSort(RecTypeR[],intn)
{
inti,j,k;
RecTypetemp;
for(i=0;i{
for(j=n-1;j>i;j--)
if(R[j].key{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
}
printf("i=%d",i);
for(k=0;kprintf("%2d",R[k].key);
printf("\n");
}
}
voidmain()
{
inti,k,n=10;
KeyTypea[]={9,8,7,6,5,4,3,2,1,0};
RecTypeR[MAXE];
for(i=0;iR[i].key=a[i];
printf("\n");
printf("firstmainword");
for(k=0;kprintf("%2d",R[k].key);
printf("\n");
BubbleSort(R,n);
printf("result");
for(k=0;kprintf("%2d",R[k].key);
printf("\n\n");
getch();
}
10.4
#include
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidQuickSort(RecTypeR[],ints,intt)
{
inti=s,j=t,k;
RecTypetemp;
if(s{
temp=R[s];
while(i!
=j)
{
while(j>i&&R[j].key>temp.key)
j--;
if(i{
R[i]=R[j];
i++;
}
while(ii++;
if(i{
R[j]=R[i];
j--;}
}
R[i]=temp;
printf("");
for(k=0;k<10;k++)
if(k==i)
printf("[%d]",R[k].key);
else
printf("%4d",R[k].key);
printf("\n");
QuickSort(R,s,i-1);
QuickSort(R,i+1,t);
}
}
voidmain()
{
inti,k,n=10;
KeyTypea[]={6,8,7,9,0,1,3,2,4,5};
RecTypeR[MAXE];
for(i=0;iR[i].key=a[i];
printf("\n");
printf("firstmainword");
for(k=0;kprintf("%4d",R[k].key);
printf("\n");
QuickSort(R,0,n-1);
printf("result");
for(k=0;kprintf("%4d",R[k].key);
printf("\n\n");
getch();
}
10.5
#include
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidSelectSort(RecTypeR[],intn)
{
inti,j,k,l;
RecTypetemp;
for(i=0;i{
k=i;
for(j=i+1;jif(R[j].keyk=j;
if(k!
=i)
{
temp=R[i];R[i]=R[k];R[k]=temp;
}
printf("i=%d",i);
for(l=0;lprintf("%2d",R[l].key);
printf("\n");
}
}
voidmain()
{
inti,k,n=10,m=5;
KeyTypea[]={6,8,7,9,0,1,3,2,4,5};
RecTypeR[MAXE];
for(i=0;iR[i].key=a[i];
printf("\n");
printf("firstmainword");
for(k=0;kprintf("%2d",R[k].key);
printf("\n");
SelectSort(R,n);
printf("result");
for(k=0;kprintf("%2d",R[k].key);
printf("\n\n");
getch();
}
四、实验结果与数据处理:
10.1
10.2
10.3
10.4
10.5
五、讨论与结论
要掌握每种算法,并能运行,整个过程要认真,细心。
六、指导教师评语及成绩:
评语:
成绩:
指导教师签名:
批阅日期: