数据结构第10章排序验证型实验报告.doc
文本预览下载声明
数据结构
实验报告 第十章
实验名称:排序问题
5.实验收获及思考
遇到的问题:
数组作为函数参数的使用方法忘记了。
解决办法:
上网查找相关知识后,学会了如何使用数组。
实验的收获:
通过亲自编写三个排序算法的程序,再一次加深了对它们的记忆,同时也复习了数组作为函数参数的使用方法。
附录:
#includeiostream
using namespace std;
int a[10]={0,6,5,2,1,4,3,8,7,9};
int b[10]={0,6,5,2,1,4,3,8,7,9};
int c[10]={0,6,5,2,1,4,3,8,7,9};
void printl(int ll[])//输出数组
{
for(int i1=1;i110;i1++)
{
coutll[i1] ;
}
coutendl;
}
void charu(int l[])//插入排序
{
int i,j;
for(i=1;i10;i++)
{
if(l[i]l[i-1])
{
l[0]=l[i];
for(j=i-1;l[0]l[j];--j)
l[j+1]=l[j];//记录后移
l[j+1]=l[0];//插入到正确位置
}
}
}
void kuaisu(int s[], int l, int r) //快速排序
{
if (l r)
{
int i = l, j = r, x = s[l];
while (i j)
{
while(i j s[j]= x) // 从右向左找第一个小于x的数
j--;
if(i j)
s[i++] = s[j];
while(i j s[i] x) //从左向右找第一个大于等于x //的数
i++;
if(i j)
s[j--] = s[i];
}
s[i] = x;
kuaisu(s,l,i-1); // 递归调用
kuaisu(s,i+1,r);
}
}
void xuanze(int s[])//直接选择排序
{
int tem;
for(int i=1;i=8;i++)//依次用第一个元素和它后面的元素比较
{
for(int j=i+1;j=9;j++)
{
if(s[j]s[i])//如果后者大,交换
{
tem=s[j];
s[j]=s[i];
s[i]=tem;
}
}
}
}
int main()
{
cout数组排序前:;printl(a);
charu(a);
cout插入排序后:;printl(a);
coutendl;
cout数组排序前:;printl(b);
kuaisu(b,1,9);
cout快速排序后:;printl(b);
coutendl;
cout数组排序前:;printl(c);
xuanze(c);
cout选择排序后:;printl(c);
return 0;
}
显示全部