数据结构折半查找问题
实 验 报 告
课 程 名 称: 上机实验名称: 专 业 班 级:
指 导 教 师:
学 生 姓 名:
学 期: 数据结构 折半查找 2013-2014第二学期
数据结构折半查找问题
实 验 报 告
课程名称 数据结构 实验名称 折半查找问题 姓 名 学 号 专业班级
实验日期 2014 年 4月 29 日 成绩 指导教师 实验题目:
6-16 折半查找问题。要求:
(1) 设计折半查找问题的递归函数。
(2) 设计折半查找问题的循环结构函数。
(3) 设计测试主函数,测试例子至少包括一个查找成功的例子和一个查找不成功的例子。 实验源代码:
#include<stdio.h>
Bsearch(int a[],int x,int low,int high)
{
int mid;
mid=(low+high)/2;
if(low>high) return -1;
if(x==a[mid]) return mid;
else if(x>a[mid]) return Bsearch(a,x,mid+1,high);
else if(x<a[mid]) return Bsearch(a,x,low,mid-1);
}
search(int a[],int y,int low,int high)
{
int mid;
mid=(low+high)/2;
数据结构折半查找问题
while(y!=a[mid])
{
if(y>a[mid]) low=mid+1;
else high=mid-1;
if(low>high) return -1;
mid=(low+high)/2;
}
return mid;
}
void main()
{
int a[]={1,3,5,7,10,13,24,45};
int x,y;
printf("数组元素为 1,3,5,7,10,13,24,45\n");
printf("用递归函数折半查找\n");
scanf("%d",&x);
int vt;
vt=Bsearch(a,x,0,7);
if(vt==-1) printf("输入参数错!\n");
else printf("输入参数在数组中的下标值为:%d\n",vt); printf("第二次判断\n");
数据结构折半查找问题
scanf("%d",&x);
vt=Bsearch(a,x,0,7);
if(vt==-1) printf("输入参数错!\n");
else printf("输入参数在数组中的下标值为:%d\n",vt); printf("用循环结构函数折半查找\n");
scanf("%d",&y);
int vb;
vb=search(a,y,0,7);
if(vb==-1) printf("输入参数错!\n");
else printf("输入参数在数组中的下标值为:
printf("第二次判断\n");
scanf("%d",&y);
vb=search(a,y,0,7);
if(vb==-1) printf("输入参数错!\n");
else printf("输入参数在数组中的下标值为:
}
实验结果 %d\n",vb); %d\n",vb);
数据结构折半查找问题
实验感悟:
经过这次上机实验,让我更加喜欢上了数据结构,让我对数据结构了更深一层的了解,人们常说实践很重要,正所谓“实践出真知”对计算机这个行业来说更是如此,百炼才能成钢 我们不能总停在书本上的知识 更要注重实践演练,越练才更能牢固并熟练掌握我们所学的知识,我们所学的将来是要运用到实际应用中的,而并不是要求我们
数据结构折半查找问题
死记住就行的,所以经过这次上机实验我以后更要注重实践,要多练多实践。
