查找算法的实现.doc_第1页
查找算法的实现.doc_第2页
查找算法的实现.doc_第3页
查找算法的实现.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验六 查找算法的实现实验六 查找算法的实现姓名:学号: 日期:一、实验目的:1.熟悉查找的特点2.熟悉顺序查找和折半查找的基本算法及实现二、实验条件:1.硬件:一台微机2.软件:Windows操作系统和C语言系统(MS VC+6.0)三、实验方法:确定存储结构后,上机调试实现顺序查找和折半查找运算。四、实验要求:1编写函数实现顺序查找和折半查找功能2编写程序实现以下功能 (1) 创建一个结构体数组; (2) 调用查找函数,对某一关键字实现顺序查找; (3) 对于无序关键字表,调用函数先进行排序,然后实现折半查找。5、 算法流程图: 6、 实验算法:#include #define MAX 100struct elementint key;int otherterm;typedef struct element DATATYPE;DATATYPE AMAX;int len,k; /*定义各个全局变量*/int seqsearch() /*顺序查找函数*/int i;i=1;while(Ai.key!=k)i+;if(i=len)return i;elsereturn -1;int binsearch() /*折半查找函数*/int low,mid,high;low=1;high=len;while(lowAmid.key)low=mid+1;elsehigh=mid-1;return -1;main()int i,f;int p,q,t;int r;A0.key=1; /*结构体数组从下标“1”开始,对下标“0”赋值*/printf(初始化关键字:(0为结束符)n);for(i=1;Ai-1.key!=0 & iMAX;i+) /*按限制输入原始序列关键字*/scanf(%d,&(Ai.key); /*预留空语句,此处可以对结构体其他部分赋值*/len=i-1; /*确定结构体数组元素个数*/printf(n请输入查询关键字:n);scanf(%d,&k);printf(请输入查找方式:(1、顺序 2、折半)n);scanf(%d,&f); /*选择查找方式*/if(f=1)r=seqsearch();if(f=2)for(p=1;p=len;p+) /*利用简单选择排序进行升序排列*/for(q=p;qlen;q+)if(Aq.keyAp.key)t=Aq.key;Aq.key=Ap.key;Ap.key=t;r=binsearch();if(r=-1)printf(n查找失败!n);elseprintf(n在表中第%d位(顺序查找时为初始位置;折半查找时为升序排列后的位置)n,r);7、 程序介绍:1、 本程序可以实现对于结构体数组(实际意义可以是表)按照关键字进行查找。2、 用户可以选择查找方式:顺序查找或者排序后折半查找。3、 程序在结构体输入处预留空语句,增加程序可移植性八、效果图:9、 实验心得: 关于数据结构和查找排序的c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论