欢迎来到天天文库
浏览记录
ID:47421890
大小:97.12 KB
页数:5页
时间:2019-09-13
《北京工业大学计算机软件基础(折半查找)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、折半查找实验报告样板程序:#include"stdio.h"#include"conio.h"#defineN80structrecord{intkey;};typedefstructrecordRECORD;intbinsearch(RECORDA[],intk);voidbubblesort(RECORDR[],intn);intn;intmain(void){RECORDA[N+1];inti,k,mid;printf("请输入待排序数据个数n:");scanf("%d",&n);printf("请输入待排序的%d个数
2、据",n);//输入待排序数据for(i=0;i3、%d",mid);elseprintf("该数据不存在!");return0;}voidbubblesort(RECORDR[],intn)//冒泡排序{inti,j,flag;RECORDtemp;i=1;do{flag=0;for(j=1;j<=n-i;j++)if(R[j].key>R[j+1].key){temp=R[j];R[j]=R[j+1];R[j+1]=temp;flag=1;}i++;}while((i4、tlow,mid,high;low=0;high=n;while(low<=high){mid=(low+high)/2;if(k==A[mid].key)returnmid;elseif(k>A[mid].key)low=mid+1;elsehigh=mid-1;}return-1;}原理分析:首先利用冒泡排序,对用户输入的数据的关键字进行排序,形成有序顺序表;然后利用折半查找,找出用户输入的关键字,返回该数据的位置。运行结果:输入14683排序输出13468并返回查找到的数据的位置输入135742输出排好序的结果12345、57若关键字不存在,返回查找失败信息。总结:该程序比较简单,基本实现了查找排序功能,达到实验基本目的。但不足之处在于每次查找只能查找一次,只能一次性输入n个数据而不能添加。
3、%d",mid);elseprintf("该数据不存在!");return0;}voidbubblesort(RECORDR[],intn)//冒泡排序{inti,j,flag;RECORDtemp;i=1;do{flag=0;for(j=1;j<=n-i;j++)if(R[j].key>R[j+1].key){temp=R[j];R[j]=R[j+1];R[j+1]=temp;flag=1;}i++;}while((i4、tlow,mid,high;low=0;high=n;while(low<=high){mid=(low+high)/2;if(k==A[mid].key)returnmid;elseif(k>A[mid].key)low=mid+1;elsehigh=mid-1;}return-1;}原理分析:首先利用冒泡排序,对用户输入的数据的关键字进行排序,形成有序顺序表;然后利用折半查找,找出用户输入的关键字,返回该数据的位置。运行结果:输入14683排序输出13468并返回查找到的数据的位置输入135742输出排好序的结果12345、57若关键字不存在,返回查找失败信息。总结:该程序比较简单,基本实现了查找排序功能,达到实验基本目的。但不足之处在于每次查找只能查找一次,只能一次性输入n个数据而不能添加。
4、tlow,mid,high;low=0;high=n;while(low<=high){mid=(low+high)/2;if(k==A[mid].key)returnmid;elseif(k>A[mid].key)low=mid+1;elsehigh=mid-1;}return-1;}原理分析:首先利用冒泡排序,对用户输入的数据的关键字进行排序,形成有序顺序表;然后利用折半查找,找出用户输入的关键字,返回该数据的位置。运行结果:输入14683排序输出13468并返回查找到的数据的位置输入135742输出排好序的结果1234
5、57若关键字不存在,返回查找失败信息。总结:该程序比较简单,基本实现了查找排序功能,达到实验基本目的。但不足之处在于每次查找只能查找一次,只能一次性输入n个数据而不能添加。
此文档下载收益归作者所有