折半查找实现算法二(递归办法)PS:编译后有一个warning,但不影响结果,代码设计上应该还有些问题
2009-08-12 10:36
836 查看
#include<iostream>
using namespace std;
#define NIL 1000;
void main()
{ int BinarySearch(int *A,int begin,int end ,int elem);
int A[8]={1,3,5,7,8,10,12,14};
int index=BinarySearch(A,0,7,10);
cout<<index<<endl;
char f;
cin>>f;
}
int BinarySearch(int *A,int begin,int end,int elem)
{
int l=begin;
int h=end;
int mid=(l+h)/2;
if(A[mid]==elem)
return mid;
else
{
if(A[mid]<elem)
{
l=mid;
if(h-l>1)
BinarySearch(A,l,h,elem);
else
return NIL;
}
else
{
h=mid;
if(h-l>1)
BinarySearch(A,l,h,elem);
else
return NIL;
}
}
}
using namespace std;
#define NIL 1000;
void main()
{ int BinarySearch(int *A,int begin,int end ,int elem);
int A[8]={1,3,5,7,8,10,12,14};
int index=BinarySearch(A,0,7,10);
cout<<index<<endl;
char f;
cin>>f;
}
int BinarySearch(int *A,int begin,int end,int elem)
{
int l=begin;
int h=end;
int mid=(l+h)/2;
if(A[mid]==elem)
return mid;
else
{
if(A[mid]<elem)
{
l=mid;
if(h-l>1)
BinarySearch(A,l,h,elem);
else
return NIL;
}
else
{
h=mid;
if(h-l>1)
BinarySearch(A,l,h,elem);
else
return NIL;
}
}
}
相关文章推荐
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- 4程序员小飞原计划三天完成某个任务,现在是第三天的下午,他马上就可以做完。但是在实现功能的过程中,他越来越意识到自己原来设计中的弱点,他应该采取另一个办法,才能避免后面集成阶段的额外工作。但是他如果现在就改弦更张,那势必要影响自己原来估计的准确性,并且会花费额外的时间,这样他的老板、同事也许会因此看不起他。如果他按部就班地按既定设计完成,还要花更多时间在后续集成上,但那就不是他个人的问题了,怎么办
- 基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?
- 如何将算法翻译成代码,软件设计实践,一个B Plus Tree算法实现(未完待续)
- 将前缀和后缀相同的文件移动到同一个目录的算法设计及C代码实现
- 烧饼排序问题(有待完善的地方,不过一个影响结果的bug被我找出来了,原来是第61行的比较运算符应该从<改成<=)
- 最大子数组问题-c++代码实现及运行实例结果
- 关于目标跟踪matlab代码调试时一个问题的解决办法
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 递归思想实现大数问题(打印1到n位最大整数)(JAVA代码)
- 全排列算法递归及STL实现,八皇后问题
- 要求顺序循环队不损失一个空间,全部能够得到有效利用,试采用设置标志位tag的方法解决“假溢出”问题,实现顺序循环队列算法
- 【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现
- 算法:二叉树的先(根)序遍历、中(根)序遍历、后(根)序遍历(递归及压栈出栈实现的非递归方式)的java代码实现
- 请编程实现:产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复(百度了一下,get一种高性能算法,非递归)
- 基因表达式编程的任务指派问题求解算法设计与实现
- iOS开发:代码通用性以及其规范 第二篇(猜想iOS中实现TableView内部设计思路(附代码),以类似的思想实现一个通用的进度条)
- 14行Python代码实现 n 皇后问题(可求出所有结果)
- 聚类方法:DBSCAN算法研究(3)--C++代码实现及与matlab实例结果比较
- 雇佣问题(hireassistant)-c++代码实现及运行实例结果