首页 数据结构折半排序查找

数据结构折半排序查找

举报
开通vip

数据结构折半排序查找数据结构折半排序查找 折半查询 一、实验目的 1,掌握排序算法及基本思想及实现的技术;能够根据实际问题特点的要求选择合理的排序方法,理解排序 在数据处理中的重要性; 2.学会比较各种排序方法的稳定性分析以及在最好 、最坏和平均情况的时间性能分析。 3.掌握顺序查找和折半查找两种查找的算法及实现技术;了解它们各自的优缺点。 4.熟悉各种查找方法的适用范围和条件;掌握顺序查找、折半查找的基本思想及效率分析。 二、实验环境 1.硬件:每个学生需配备计算机一台。操作系统:DOS或Windows 2.软件:DOS或...

数据结构折半排序查找
数据结构折半排序查找 折半查询 一、实验目的 1,掌握排序算法及基本思想及实现的技术;能够根据实际问题特点的要求选择合理的排序方法,理解排序 在数据处理中的重要性; 2.学会比较各种排序方法的稳定性分析以及在最好 、最坏和平均情况的时间性能分析。 3.掌握顺序查找和折半查找两种查找的算法及实现技术;了解它们各自的优缺点。 4.熟悉各种查找方法的适用范围和条件;掌握顺序查找、折半查找的基本思想及效率分析。 二、实验环境 1.硬件:每个学生需配备计算机一台。操作系统:DOS或Windows 2.软件:DOS或Windows操作系统+Turbo C; 三、实验要求 1.本次实验较为简单,每个同学独立按时完成,通过实验掌握记录的概念,为以后数据库技术打好基础。 2.如果输入数据较为繁琐,可减低每个班的人数。 3.输入输出数据要有提示,方便用户操作。 四、实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 1.现在某个学院有20名同学分属于2个班级(Class1和Class2,每个班有10名同学,每个同学记录包括: 班级、学号、姓名、性别、电话号码等信息)。 2.以学号为主关键字,以班级为次关键字,建立一个顺序 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ,表中的每个数据元素是一个记录,其中的某 个域用来存储关键字的值,按关键字的值进行顺序查找。为分析排序方法的稳定性,关键字可用次关键字。 #include "stdio.h" #include "malloc.h" #include "string.h" typedef struct {int cla; int num; char name[7]; char sex; long phnum; }stu_hc; typedef struct {stu_hc *elem; int length; int sum; }sqlist_hc; sqlist_hc *initlist_hc() {sqlist_hc *l;int n; l=(sqlist_hc*)malloc(sizeof(sqlist_hc)); if(!l)printf("出错!\n"); printf("输入学生人数:");scanf("%d",&n); l->length=0;l->sum=n; l->elem=(stu_hc*)malloc(n*sizeof(stu_hc)); if(!l->elem)printf("出错!\n"); return(l);} int place_hc(sqlist_hc *l,int c,int num) {int low,high,mid,j=-1,i; low=0;high=l->length-1; while(low<=high) {mid=(low+high)/2; if(l->elem[mid].num>num)high=mid-1; else {j=mid;low=mid+1;}} i=j; for(j=mid;j>=i;j--) {if(j==-1||num>l->elem[j].num)break; else if(num==l->elem[j].num&&c>l->elem[j].cla)break;} return(++j);} void move_hc(sqlist_hc *l,int j) {int i; for(i=l->length-1;i>=j;i--) {l->elem[i+1].cla=l->elem[i].cla; strcpy(l->elem[i+1].name,l->elem[i].name); l->elem[i+1].num=l->elem[i].num; l->elem[i+1].sex=l->elem[i].sex; l->elem[i+1].phnum=l->elem[i].phnum;}} void createlist_hc(sqlist_hc *l) {int i,j,c,num; char nam[7],s;long p; printf("输入学生信息(class name num sex phonenum):\n"); for(i=0;isum;i++) {flushall(); scanf("%d %s %d %c %ld",&c,nam,&num,&s,&p); j=!(l->length)?0:place_hc(l,c,num); move_hc(l,j); l->elem[j].cla=c; strcpy(l->elem[j].name,nam); l->elem[j].num=num; l->elem[j].sex=s; l->elem[j].phnum=p; l->length++;}} void seekstu_hc(sqlist_hc *l) {int low,high,mid,num,c; printf("输入查找人的学号和班级号:"); scanf("%d %d",&num,&c); while(num!=-1||c!=-1) {low=0;high=l->length-1; while(low<=high) {mid=(low+high)/2; if(l->elem[mid].numelem[mid].num>num)high=mid-1; else {if(l->elem[mid].claelem[mid].cla>c)mid--; break;}} printf("%d,%s,%d,%c,%ld\n",l->elem[mid].cla,l->elem[mid].name,l->elem[mid].num,l->elem[mid].sex,l->elem[ mid].phnum); printf("输入查找人的学号和班级号:"); scanf("%d %d",&num,&c);}} void printlist_hc(sqlist_hc*l) {int i,j=0; printf("当前表中信息如下:class/name/num/sex/phonenum\n"); for(i=0;isum;i++) {printf("%d/%s/%d/%c/%ld ",l->elem[i].cla,l->elem[i].name,l->elem[i].num,l->elem[i].sex,l->elem[i].phnum); if(++j==3){j=0;printf("\n");}} printf("\n");} main() {sqlist_hc *l; l=initlist_hc(); createlist_hc(l); printlist_hc(l); seekstu_hc(l); printf("作者:黄晨");}
本文档为【数据结构折半排序查找】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_977556
暂无简介~
格式:doc
大小:56KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-16
浏览量:22