社区
C语言
帖子详情
写了半天也没写好,请大家帮帮忙!
慢慢来还不行么
2005-04-09 12:11:02
用递归实现折半查找。函数的定义如下:
bool Find(* pData, iCount, iData)
...全文
143
13
打赏
收藏
写了半天也没写好,请大家帮帮忙!
用递归实现折半查找。函数的定义如下: bool Find(* pData, iCount, iData)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ycom__net
2005-04-09
打赏
举报
回复
为什么要递归呢,
循环就可以了!1
#include <stdio.h>
#include <stdlib.h>
int Find(int *list ,int data,int size)
{
int mid,head=0,tail=size-1;
while (head<=tail)
{
mid=(head+tail)/2;
if ( list[mid] == data)
return mid;
if ( list[mid] < data)
head=mid+1;
if( list[mid] > data)
tail=mid-1;
}
return 0;
}
int main()
{
int num[10]={0,1,2,3,4,5,6,8,10,22};
int tmp;
tmp=Find (num,10,10);
printf("%d", tmp);
system("PAUSE");
return 0;
}
FlyWithJo
2005-04-09
打赏
举报
回复
bool Find(* pData, iCount, iData)
{
if(iCount==1)
{
if (pData[0] == iData)
return true;
else
return false;
}
int i = iCount/2;
if(pData[i]==iData)
{
return true;
}
else
{
if (Find(pData+i+1,i,iData))
return true;
else
return Find(pData,i,iData);
}
}
没有测试过,你试试看
llf_hust
2005-04-09
打赏
举报
回复
找不到就返回-1呀
zengwujun
2005-04-09
打赏
举报
回复
#include <stdio.h>
#define MAX 11
int Data[MAX]={5,13,19,21,37,56,64,75,80,88,92};
int counter=0;
bool Binary_Search(int key,int low,int high)
{
bool bFind = false;
int mid;
while(low<=high || !bFind)
{
mid=(low+high)/2;
if(key==Data[mid])
{
return true;
}
if(key<Data[mid])
{
high=mid-1;
bFind = Binary_Search(key,low,high);
}
else
{
low=mid+1;
bFind = Binary_Search(key,low,high);
}
}
return bFind;
}
void main()
{
int key=19;
if(Binary_Search(key,0,10))
printf("Found!\n");
else
printf("Not Found!\n");
}
jerry256
2005-04-09
打赏
举报
回复
不好意思。我自己没看清楚程序:) to IIF_hust()
jerry256
2005-04-09
打赏
举报
回复
IIF_hust() 如果iData查找不到呢?
jerry256
2005-04-09
打赏
举报
回复
谢谢。最后一行的 return -1; 应该是 return false; 吧?
llf_hust
2005-04-09
打赏
举报
回复
上面的算法有问题
int Find(int *pData,int low,int high,int iData)
{
int mid;
if(low >high) return -1;
mid = (low + high)/2;
if( iData == pData[mid]) return true;
if (iData < pData[mid]) return Find(pData,low,mid-1,iData);
else return Find(pData,mid+1,high,iData);
}
llf_hust
2005-04-09
打赏
举报
回复
bool Find(int *pData,int start,int iCount,int iData)
{
int i=0 , j;
while (i < iCount)
{
j = (i+iCount)/2;
if ( pData[j] == iData)
return true;
else if ( pData[j] < iData)
return Find(pData,0,j-1,iData);
else
return Find(pData,j+1,iCount,iData);
}
return -1;
}
慢慢来还不行么
2005-04-09
打赏
举报
回复
请各位帮忙
慢慢来还不行么
2005-04-09
打赏
举报
回复
是的。当时就没写好。结果被刷了。我是小菜鸟呵。
MagicCarmack
2005-04-09
打赏
举报
回复
面试题?
慢慢来还不行么
2005-04-09
打赏
举报
回复
呵呵,这是我去面试的一道题目,要求就是用递归实现的。再次谢谢各位啦
c#实现一个超实用的证件照换底色小工具(附源码)
这时候你想换个底色,于是在百度上一搜“证件照换底色”,出来了一堆photoshop 教程,程序员可以找公司美工帮个忙,但是一般人就很纠结了,所以呢我就花了
半天
的功夫
写
了一个小软件,简化大家的操作难度,哎!...
java实现发送匿名邮件,
帮帮忙
!现在要实现邮件发送(还必须要匿名发送)!该怎么解决...
当前位置:我的异常网» Java Web开发»
帮帮忙
!现在要实现邮件发送(还必须要匿名发送)!
帮帮忙
!现在要实现邮件发送(还必须要匿名发送)!该怎么解决www.myexceptions.net网友分享于:2015-08-26浏览:16次
帮帮忙
!...
java错误收集4:还
请
大家
帮帮忙
## java错误收集4:还
请
大家
帮帮忙
** **今天学习java的时候,找了
半天
也
没
有发现错误** 主要问题有这么几个: ** ## H:\>javac DrawStar.java DrawStar.java:4: 错误: 需要';' 行数 空格 数字 空格 ^ ...
android:突发奇想仿"大叔
帮帮忙
"UI--one
大叔
帮帮忙
是最近比较火的一个android应用,闲着
没
事,决定高仿一下,可是忙活了
半天
,主要是大部分时间都在玩,中午
写
着
写
着看起了比赛(骑士VS湖人,23VS24),绝佳嘘头啊,还好今天我科今天比较牛逼,老詹也是...
better-scroll不生效,求大神帮忙!!!
在做Vue项目时,在List页面运用了better-scroll,格式检查了,
没
有问题,可能是wrapperhight和contentheight的问题,弄
半天
了希望大家
帮帮忙
!!!!!!!!!`在这里插 ...
C语言
69,368
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章