二分查找

nullah 2008-10-20 11:52:59

#include <iostream>
using namespace std;

int main()
{
int mid(int num[], int num, int length);
//int count(int num[], int length);
int seq[14] = {1,5,5,5,7,7,7,7,8,8,8,8,8,8};
cout << mid(seq, 5, 14) << endl;
return 0;
}

int mid(int num[], int tar, int length)
{
int midNum = length/2;
if(tar > num[mid-1])
{
mid(num+midNum, tar, length-midNum+1);
}
else if(tar < num[mid-1])
{
mid(num, tar, midNum-1);
}
else
{
return mid;
}

return mid;
}




数组作为参数的错误??
...全文
93 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackzhhuang 2008-10-20
  • 打赏
  • 举报
回复
int mid(int num[], int num, int length);

一样了。

另外你的二分查找错误挺多的,考虑一下溢出,写好一个二分查找可不是这么容易的(《算法导论》里面只关注了方法,却没有考虑这个问题),看《编程之美》,有一个完整的二分查找程序。

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧