实验七八 查找排序应用问题实现Word文档下载推荐.docx

上传人:b****6 文档编号:15856246 上传时间:2022-11-16 格式:DOCX 页数:10 大小:304.71KB
下载 相关 举报
实验七八 查找排序应用问题实现Word文档下载推荐.docx_第1页
第1页 / 共10页
实验七八 查找排序应用问题实现Word文档下载推荐.docx_第2页
第2页 / 共10页
实验七八 查找排序应用问题实现Word文档下载推荐.docx_第3页
第3页 / 共10页
实验七八 查找排序应用问题实现Word文档下载推荐.docx_第4页
第4页 / 共10页
实验七八 查找排序应用问题实现Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验七八 查找排序应用问题实现Word文档下载推荐.docx

《实验七八 查找排序应用问题实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验七八 查找排序应用问题实现Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

实验七八 查找排序应用问题实现Word文档下载推荐.docx

intnum;

//学号

charname[10];

//姓名

charcla[20];

//班级

intage;

//年龄

}Student;

typedefstructSqList//顺序表结构体的定义

StudentStu[MAXSIZE+1];

//定义一个存放学生信息的数组

}SqList;

//直接插入排序(班级优先)

voidInsertsort(SqList&

L))

{

inti,j;

for(i=2;

i<

=n;

++i)

if(strcmp(L.Stu[i].cla,L.Stu[i-1].cla)<

0)

{

L.Stu[0]=L.Stu[i];

for(j=i-1;

strcmp(L.Stu[0].cla,L.Stu[j].cla)<

0;

--j)

L.Stu[j+1]=L.Stu[j];

L.Stu[j+1]=L.Stu[0];

}

}

//选择排序(姓名优先)

voidSelectsort(SqList&

L)

Studentt;

inti,j,k;

for(i=1;

i++)

k=i;

for(j=i+1;

j<

j++)

if(strcmp(L.Stu[j].name,L.Stu[k].name)<

k=j;

if(k!

=i)

{

t=L.Stu[i];

L.Stu[i]=L.Stu[k];

L.Stu[k]=t;

}

}

//快速排序

voidQuicksort(SqListL,intlow,inthigh)

intlocation;

if(low<

high)

location=Partition(L,low,high);

Quicksort(L,low,location-1);

//对左区间递归排序

Quicksort(L,location+1,high);

//对右区间递归排序

}

}

//查找学生信息

voidfind(SqList&

L,intn)

intt,m=1;

cout<

<

"

请输入你要查找的学号:

endl;

cin>

>

t;

该学生的信息为:

while(m<

=n&

&

L.Stu[m].num!

=t)

m++;

if(L.Stu[m].num==t)

cout<

学号是:

L.Stu[m].num<

\t姓名:

L.Stu[m].name<

\t班级:

L.Stu[m].cla<

\t年龄:

L.Stu[m].age<

else

没有你要查找的学生!

㈡、程序调试及运行结果分析

4、实验总结

通过这次实验我理解掌握基本查找算法、排序算法的特点及在计算机中的实现方法。

在实验过程中,我运用所学的知识解决简单的应用问题,通过不断的修改程序来完善自己的不足之处。

只有这样,才能更快的进步。

5、程序清单

intn;

voidCreatInfo(SqList&

请输入你要创建的学生数:

n;

学生的信息:

姓名学号年龄班级:

for(inti=1;

i++)

cin>

L.Stu[i].name>

L.Stu[i].num>

L.Stu[i].age>

L.Stu[i].cla;

voidprint(SqList&

L)//输出顺序表

输出学生信息:

L.Stu[i].name<

"

L.Stu[i].num<

L.Stu[i].age<

L.Stu[i].cla<

L)//直接插入排序(班级优先)

intPartition(SqList&

L,inti,intj)//快速排序

Studentp;

L.Stu[0]=L.Stu[i];

p=L.Stu[i];

while(i<

j)

while(i<

j&

L.Stu[j].num>

=p.num)

j--;

L.Stu[i]=L.Stu[j];

i++;

L.Stu[j]=L.Stu[i];

L.Stu[i]=p;

returni;

voidQuicksort(SqListL,intlow,inthigh)//快速排序

voidSelectsort(SqList&

L)//选择排序(姓名优先)

L,intn)//查找学生信息

intmain()

{

SqListL;

intk;

CreatInfo(L);

//创建学生信息

print(L);

//按输入顺序打印出顺序表

loop:

请选择排序方式:

1插入排序(班级优先)"

2选择排序(姓名优先)"

3快速排序"

4按学号查找学生"

0退出排序程序"

cin>

k;

if(k!

=0)

{

switch(k)

{

case1:

Insertsort(L);

//进行插入排序

print(L);

break;

//输出插入排序后的顺序表

case2:

Selectsort(L);

//进行选择排序

print(L);

//输出排序后的顺序表

case3:

Quicksort(L,1,n);

//选择快速排序

case4:

find(L,n);

//查找学生信息

default:

cout<

输入错误!

gotoloop;

return0;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1