数据结构实验报告内排序+Word文档下载推荐.docx
《数据结构实验报告内排序+Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告内排序+Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
内排序
■必修□选修
□演示性实验□验证性实验■操作性实验□综合性实验
实验地点
实验仪器台号
指导教师
实验日期及节次
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语言
三、实验方法与步骤:
10.1
#include<
stdio.h>
#defineMAXE20
typedefintKeyType;
typedefcharInfoType[10];
typedefstruct
{
KeyTypekey;
InfoTypedata;
}RecType;
voidInsertSort(RecTypeR[],intn)
{
inti,j,k;
RecTypetemp;
for(i=1;
i<
n;
i++)
{
temp=R[i];
j=i-1;
while(j>
=0&
&
temp.key<
R[j].key)
{
R[j+1]=R[j];
j--;
}
R[j+1]=temp;
printf("
i=%d"
i);
for(k=0;
k<
k++)
%3d"
R[k].key);
\n"
);
}
voidmain()
inti,k,n=10;
KeyTypea[]={9,8,7,6,5,4,3,2,1,0};
RecTypeR[MAXE];
for(i=0;
i++)
R[i].key=a[i];
firstmainword"
InsertSort(R,n);
result"
\n\n"
getch();
10.2
voidShellSort(RecTypeR[],intn)
inti,j,d,k;
d=n/2;
while(d>
0)
for(i=d;
{
j=i-d;
R[j].key>
R[j+d].key)
temp=R[j];
R[j]=R[j+d];
R[j+d]=temp;
j=j-d;
}
}
d=%d:
"
d);
d=d/2;
firstmainword"
ShellSort(R,n);
10.3
#defineMAXE20
voidBubbleSort(RecTypeR[],intn)
n-1;
for(j=n-1;
j>
i;
j--)
if(R[j].key<
R[j-1].key)
R[j]=R[j-1];
R[j-1]=temp;
%2d"
}
BubbleSort(R,n);
10.4
voidQuickSort(RecTypeR[],ints,intt)
inti=s,j=t,k;
if(s<
t)
temp=R[s];
while(i!
=j)
i&
temp.key)
if(i<
j)
R[i]=R[j];
i++;
while(i<
j&
R[i].key<
i++;
R[j]=R[i];
j--;
R[i]=temp;
10;
if(k==i)
[%d]"
else
%4d"
QuickSort(R,s,i-1);
QuickSort(R,i+1,t);
KeyTypea[]={6,8,7,9,0,1,3,2,4,5};
QuickSort(R,0,n-1);
10.5
voidSelectSort(RecTypeR[],intn)
inti,j,k,l;
i++)
k=i;
for(j=i+1;
j<
j++)
R[k].key)
k=j;
if(k!
=i)
R[i]=R[k];
R[k]=temp;
for(l=0;
l<
l++)
R[l].key);
inti,k,n=10,m=5;
SelectSort(R,n);
四、实验结果与数据处理:
五、讨论与结论
要掌握每种算法,并能运行,整个过程要认真,细心。
六、指导教师评语及成绩:
评语:
成绩:
指导教师签名:
批阅日期: