拆半查找的递归和非递归算法
来源:互联网 发布:javascript 抢购 编辑:程序博客网 时间:2024/04/24 14:41
本文为原创,如需转载,请注明作者和出处,谢谢!
#include <stdio.h>
int binary_search(int x, int data[], int b, int e)
{
int i;
while(b <= e)
{
i = (b + e) / 2;
if(data[i] == x) return i;
if(data[i] < x)
b = i + 1;
else
e = i - 1;
}
return -1;
}
int binary_search_recursion(int x, int data[], int b, int e)
{
int i;
i = (b + e) / 2;
if(b > e) return -1;
if(data[i] != x)
{
if(x < data[i])
return binary_search_recursion(x, data, 0, i - 1);
else
return binary_search_recursion(x, data, i + 1, e);
}
else
return i;
}
int main()
{
int data[] = {1, 4, 5, 7, 9};
printf("%d /n", binary_search_recursion(9, data, 0, 4));
printf("%d /n", binary_search(9, data, 0, 4));
printf("%d /n", binary_search_recursion(90, data, 0, 4));
printf("%d /n", binary_search(89, data, 0, 4));
return 0;
}
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
#include <stdio.h>
int binary_search(int x, int data[], int b, int e)
{
int i;
while(b <= e)
{
i = (b + e) / 2;
if(data[i] == x) return i;
if(data[i] < x)
b = i + 1;
else
e = i - 1;
}
return -1;
}
int binary_search_recursion(int x, int data[], int b, int e)
{
int i;
i = (b + e) / 2;
if(b > e) return -1;
if(data[i] != x)
{
if(x < data[i])
return binary_search_recursion(x, data, 0, i - 1);
else
return binary_search_recursion(x, data, i + 1, e);
}
else
return i;
}
int main()
{
int data[] = {1, 4, 5, 7, 9};
printf("%d /n", binary_search_recursion(9, data, 0, 4));
printf("%d /n", binary_search(9, data, 0, 4));
printf("%d /n", binary_search_recursion(90, data, 0, 4));
printf("%d /n", binary_search(89, data, 0, 4));
return 0;
}
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
- 拆半查找的递归和非递归算法
- 拆半查找的递归和非递归算法
- 拆半查找的递归和非递归算法
- 拆半查找的递归和非递归算法(C语言编译)
- 二分查找算法 递归和非递归
- 算法_二分查找的递归和非递归形式
- 折半查找的递归算法和非递归
- 递归和非递归的二分查找
- 二分查找的递归和非递归
- java算法:折半查找(递归算法和非递归算法)
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找算法递归和非递归实现(C++)
- 二分查找算法(递归和非递归)
- 遇到个问题想发帖、发现积分不够、有高手路过指点一下吧!
- Java SE6调用Java编译器的两种新方法
- 得到第K个大的数算法研究
- 【转载】OpenEJB 3.0支持对枚举和集合的依赖注入及OSGi和EJB 3.0特性
- 棋盘覆盖问题的算法实现
- 拆半查找的递归和非递归算法
- 全排列算法原理和实现
- 整数划分算法原理与实现
- PHP + Apache + Windows的设置
- Delphi使用资源文件全攻略
- 在delphi中如何动态建立类的实例
- Java的多进程运行模式分析
- 《程序员》第9期智慧擂台题目——高频词汇提取
- 百度面试题的java实现