查找和排序算法的实现(实验七).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
查找和排序算法的实现(实验七)

实验 七 查找和排序算法的实现 实验目的及要求 学生在实验中体会各种查找和内部排序算法的基本思想、适用场合,理解开发高效算法的可能性和寻找、构造高效算法的方法。 掌握运用查找和排序解决一些实际应用问题。 二.实验内容: 编程实现一种查找算法(如折半查找、二叉排序树的查找、哈希查找等),并计算相应的ASL。 编程实现一种内部排序算法(如插入排序、快速排序等)。 三.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页) 编程实现一种查找算法(如折半查找、二叉排序树的查找、哈希查找等),并计算相应的ASL。 程序代码: 折半查找: 头文件: #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)(b)) #define maxlength 20 typedef int ElemType; typedef struct{ ElemType key; ElemType other; }card;//每条记录包含的数据项 typedef struct{ card r[maxlength]; int length; }SSTable;//一张表中包含的记录容量 void Create(SSTable L); int Search(SSTable L,int elem); 功能函数: #include1.h #includestdio.h void Create(SSTable L) { printf(新的线性表已经创建,请确定元素个数(不超过20)\n); scanf(%d,L.length); printf(请按递增序列输入具体的相应个数的整数元素(空格隔开)\n); for(int i=0;iL.length;i++) { scanf(%d,L.r[i].key); } } int Search(SSTable L,int elem) { if(L.r[L.length-1].keyelem||L.r[0].keyelem) { printf(表中没有该元素(不在范围内)\n); return 0; } int low=0,high=L.length-1; int mid; while(low=high) { mid=(low+high)/2; if(EQ(L.r[mid].key,elem)){printf(该元素在第%d位\n,mid+1); return 0;} else if(LT(elem,L.r[mid].key)) { high=mid-1; } else { low=mid+1; } } printf(表中没有该元素(不在范围内)\n); return 0; } 主函数: #includestdio.h #include1.h int main() { SSTable L; Create(L); printf(\n); printf(此时的线性表元素:\n); for(int a=0;aL.length;a++) { printf(%d ,L.r[a].key); } printf(\n); printf(\n); int elem; do { printf(请输入要查找的元素(输入000表示结束程序)\n); scanf(%d,elem); if(elem!=000) { Search(L,elem); } }while(elem!=000); return 0; } 运行结果: (2) 编程实现一种内部排序算法(如插入排序、快速排序等)。 程序代码部分: 直接插入排序 头文件: #define maxlength 20//最大数据容量 #define OK 1 typedef int Status; typedef int Other; typedef int KeyType; typedef struct{ KeyType key; Other data; }Red; typedef struct{ Red r[maxlength+1];//加了个哨兵的位置 int length;//当前数据个数 }SqList; Status Init(SqList L); Status Insertsort(SqList L); 功能函数: #includestdio.h #include1.h St

文档评论(0)

sa74g0hj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档