1 / 15
文档名称:

二分搜索算法实验报告.doc

格式:doc   大小:30KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二分搜索算法实验报告.doc

上传人:tswng35 2022/2/18 文件大小:30 KB

下载得到文件列表

二分搜索算法实验报告.doc

文档介绍

文档介绍:-
. z.
实验一 二分搜索算法实验报告
实验目的
理解分治算法的概念和根本要素;
理解递归的概念;
掌握设计有效算法的分治策略;
通过二分搜索技术学****分治策略设计技巧
int right=n-1;
int middle;
while(left<=right){
middle=(left+right)/2;
if(*==a[middle])
return middle;
if(*>a[middle])
left=middle+1;
-
. z.
else right=middle-1;
}
return-1;
}
main()
{
int a[MA*];
int found,*,n,i,j,p;
printf("数的个数\n");
scanf("%d",&n);
printf("数组数据\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for (i=0;i<n-1;i++)
{
p=i;
for (j=i+1;j<n;j++)
if (a[p]>a[j])
p=j;
if (p!=j)
-
. z.
{
*=a[p];
a[p]=a[i];
a[i]=*;
}
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("输入要查找的数\n");
scanf("%d",&*);
found=BinarySearch(a,*,n);
if(found==-1)
{
printf("未找到\n");
}
else
{
printf("要查找的数在第 %d 个\n",found+1);
}
}
-
. z.
程序代码
变量定义说明:
BinarySearch()算法: a->数组
key->要查找的元素
left->左标志
right->右标志
〔n->数据个数〕
Main()主函数: ound->是否找到标志,-1表示未找到,找到其值为下标
*->要查找的元素
n->元素个数
i,j,p->循环控制变量
、递归查找
#include<>
#define MA* 30
int BinarySearch(int a[],int key,int left,int right)
{
int mid=(right-right)/2+left;
if(a[mid]==key) {
return mid;
}
if(left>=right) {
-
. z.
return -1;
}else if(key>a[mid]) {
return BinarySearch(a,key,mid+1,right);
} else if(key<a[mid]) {
return BinarySearch(a,key,left,mid- 1);
}
return -1;
}
int main(void)
{
int a[MA*];
int found,*,n,i,j,p;
printf("数据个数:");
scanf("%d",&n);
printf("输入数据:\n");
for(i=0;i<n;i++)
{
printf("请输入第%d个数据:",i);
scanf("%d",&a[i]);
}
for