- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查找、排序的应用 实验报告
实验七 查找、排序的应用
实验目的
1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。
2、学会比较各种排序与查找算法的优劣。
3、学会针对所给问题选用最适合的算法。
4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。
二、实验内容
[问题描述]
[基本要求]
[测试数据]
由学生依据软件工程的测试技术自己确定。
五、算法设计
折半查找
设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值。初始时,令low=1,high=n,mid=?(low+high)/2,让key与mid指向的记录比较,
若key==r[mid].key,查找成功
若keyr[mid].key,则high=mid-1
若keyr[mid].key,则low=mid+1
重复上述操作,直至lowhigh时,查找失败
b、顺序查找
从表的一端开始逐个进行记录的关键字和给定值的比较。在这里从表尾开始并把下标为0的作为哨兵。
void chaxun(SqList ST) //查询信息
{ cout\n************************endl;
cout~ (1)根据学号查询 ~endl;
cout~ (2)根据姓名查询 ~endl;
cout~ (3)根据性别查询 ~endl;
cout~ (4)退出 ~endl;
cout************************endl; if(m==1)
折半查找算法:
for(int i=1;iST.length;i++)//使学号变为有序
for(int j=i;j=1;j--)
if(ST.r[j].xuehaoST.r[j-1].xuehao)
{
LI=ST.r[j];
ST.r[j]=ST.r[j-1];
ST.r[j-1]=LI;
}
int a=0;
cout输入要查找的学号endl;
cinn;
int low,high,mid;
low=0;high=ST.length-1; // 置区间初值
while (low=high)
{
mid=(low+high)/2;
if(n==ST.r[mid].xuehao)
{
coutST.r[mid].xuehao ST.r[mid].xingming ST.r[mid].xingbei ST.r[mid].chengji1 ST.r[mid].chengji2 ST.r[mid].zongendl;
a=1;
break;
}
else if(nST.r[mid].xuehao )
high=mid-1; // 继续在前半区间进行查找
else
low=mid+1; // 继续在后半区间进行查找
顺序查找算法:
cout输入要查找的姓名endl;
cinname;
for(int i=0;iST.length;i++)
{
if(name==ST.r[i].xingming)
{
coutST.r[i].xuehao ST.r[i].xingming ST.r[i].xingbei ST.r[i].chengji1 ST.r[i].chengji2 ST.r[i].zongendl;
a=1;
}
插入排序
每步将一个待排序的记录,按其关键码大小,插入到前面已经排好序的一组记录的适当位置上,直到记录全部插入为止。
//按学号排序,使用插入排序
RecordType LI; //定义存储学号向量
for(int i=1;iST.length;i++)
for(int j=i;j=1;j--)
if(ST.r[j].xuehaoST.r[j-1].xuehao)
{
LI=ST.r[j];
ST.r[j]=ST.r[j-1];
ST.r[j-1]=LI;}
2、选择排序
首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换
再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换
重复上述操作,共进行n-1趟排序后,排序结束。
//按成绩1排序,用选择排序
RecordType LI;
for(int i=0; iST.length;i++)
for (int j=i+1
您可能关注的文档
- 南开大学公共绿地调研.doc
- 实验五 查找运算实现.doc
- 哈希查找的实现与分析报告(顺序).docx.docx
- 数据结构期末样卷参考答案.doc
- 查找和排序的实现.doc
- 查找排序应用问题实现.doc
- 高分子复合.doc
- 2024江西江铃专用车辆厂有限公司招聘60人笔试参考题库附带答案详解 .docx
- 2024河南安建建设工程管理有限责任公司招聘笔试参考题库附带答案详解 .docx
- 2024年安徽黄山阳光电力维修工程有限公司招聘29人(第一批次)笔试参考题库附带答案详解 .docx
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
最近下载
- 2024年浙江省金华市义乌市稠州中学中考三模科学试题(解析版).docx VIP
- 《电子商务基础与实务》项目化教学单元设计().doc
- 浙江省金华市义乌市稠州中学2024年中考适应考试(三模)科学试卷.doc VIP
- 2025年郑州医药健康职业学院单招职业技能测试题库必考题.docx VIP
- 2024年郑州医药健康职业学院单招职业技能测试题库必考题.docx VIP
- 2024年浙江省金华市义乌市中考数学二模试卷.doc VIP
- 浙江省金华市义乌市2024年中考语文二模试卷附参考答案.pptx VIP
- 2025年郑州医药健康职业学院单招职业技能测试题库及答案(各地真题).docx VIP
- 新媒体时代网络谣言传播及其治理策略研究.pdf
- 2025年郑州医药健康职业学院单招职业技能测试题库(历年真题).docx VIP
文档评论(0)