程序实现折半查找算法,要求事先建立一个有序的顺序表
答案:4 悬赏:30 手机版
解决时间 2021-04-16 23:18
- 提问者网友:書生途
- 2021-04-16 19:19
程序实现折半查找算法,要求事先建立一个有序的顺序表
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-04-16 19:57
// hgjkg.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#define n 11
int count=0;
int bin_search(int a[],int low,int high,int x) //折半查找函数
{ count++;
int mid;
if(low>high) return -1;
else
{
mid=(low+high)/2;
if(x==a[mid]) return mid;
else if(x return bin_search(a,low,mid-1,x);
else
return bin_search(a,mid+1,high,x);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int s;
int a[n]={3,5,8,10,15,22,28,30,31,55};
s=bin_search(a,0,9,28);
if(s==-1){
printf("没有找到要查询的数\n");
printf("本次查询总用了 %d 次\n",count);
}
else
{
printf("本次查询总用了 %d 次\n",count);
printf("本次查找到的下标是: %d \n",s);
}
return 0;
}
这程序我已经运行成功了,我是在VS2005环境下运行的
//
#include "stdafx.h"
#define n 11
int count=0;
int bin_search(int a[],int low,int high,int x) //折半查找函数
{ count++;
int mid;
if(low>high) return -1;
else
{
mid=(low+high)/2;
if(x==a[mid]) return mid;
else if(x return bin_search(a,low,mid-1,x);
else
return bin_search(a,mid+1,high,x);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int s;
int a[n]={3,5,8,10,15,22,28,30,31,55};
s=bin_search(a,0,9,28);
if(s==-1){
printf("没有找到要查询的数\n");
printf("本次查询总用了 %d 次\n",count);
}
else
{
printf("本次查询总用了 %d 次\n",count);
printf("本次查找到的下标是: %d \n",s);
}
return 0;
}
这程序我已经运行成功了,我是在VS2005环境下运行的
全部回答
- 1楼网友:迟山
- 2021-04-16 22:05
额。。。这是哪的题啊?
- 2楼网友:罪歌
- 2021-04-16 20:58
viod insert_search(int a[ ],int n,elementtype X) //数组时机存放元素个数n应比数组长度小1
{
int low=0, high=n-1, mid,i;
while(low<=high)
{
mid=(low+high)/2;
if ( a[mid] else low=mid+1;
}
for(i=n-1;i>=mid;i - -)
a[i+1]=a[i];
a[mid]=X;
}
{
int low=0, high=n-1, mid,i;
while(low<=high)
{
mid=(low+high)/2;
if ( a[mid]
}
for(i=n-1;i>=mid;i - -)
a[i+1]=a[i];
a[mid]=X;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯