二分查找分C++实现
来源:互联网 发布:adobe for mac 编辑:程序博客网 时间:2024/05/01 17:51
#include<iostream>
using namespace std;
/*
二分查找法
优点:查找速度快,平均性能好。
缺点:待查表为有序表
*/
int main()
{
int binSearch(const int*, int, int, int);
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
cout << binSearch(arr, 0, 9, 5) << endl;
return 0;
}
int binSearch(const int* Array,int start,int end,int key)
{
int left,right;
int mid;
left = start;
right = end;
//注释中为递归算法,执行效率低,不推荐
/*
if(key < Array[mid])
{
return(binSearch(Array, left, mid-1, key));
}
else if(key > Array[mid])
{
return(binSearch(Array, mid+1, right, key));
}
else
return mid;
*/
while(left<=right)
{
mid = (left+right)/2;
if(key==Array[mid])
{
return mid;
}
else if(key<Array[mid])
{
right=mid-1;
}
else if(key>Array[mid])
{
left=mid+1;
}
}
return -1;
}
using namespace std;
/*
二分查找法
优点:查找速度快,平均性能好。
缺点:待查表为有序表
*/
int main()
{
int binSearch(const int*, int, int, int);
int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
cout << binSearch(arr, 0, 9, 5) << endl;
return 0;
}
int binSearch(const int* Array,int start,int end,int key)
{
int left,right;
int mid;
left = start;
right = end;
//注释中为递归算法,执行效率低,不推荐
/*
if(key < Array[mid])
{
return(binSearch(Array, left, mid-1, key));
}
else if(key > Array[mid])
{
return(binSearch(Array, mid+1, right, key));
}
else
return mid;
*/
while(left<=right)
{
mid = (left+right)/2;
if(key==Array[mid])
{
return mid;
}
else if(key<Array[mid])
{
right=mid-1;
}
else if(key>Array[mid])
{
left=mid+1;
}
}
return -1;
}
0 0
- 二分查找分C++实现
- C语言实现二分查找
- 二分查找 c语言实现
- 二分查找C语言实现
- 二分查找实现 C代码
- C语言实现二分查找
- 二分查找 C/C++实现
- c语言 实现二分查找
- c语言实现二分查找
- 算法-对分查找(二分查找)C++实现
- 分冶-二分查找
- 二分查找算法的C/C++实现
- C语言实现二分查找算法
- C语言实现二分查找算法
- c语言二分查找泛型实现
- 二分查找的C语言实现
- c语言利用递归实现二分查找
- 二分查找算法的C语言实现
- 解析json之com.google.gson.Gson
- 基于DTMF音调的数据通信(一)——android平台
- P53 第37题 数字对称的东西
- 阶段性手记
- skynet源码剖析06 service-src下的C服务实现文件说明
- 二分查找分C++实现
- hdu 2199 Can you solve this equation?
- sql sever 2008表连接方式总结
- HDOJ-2199-Can you solve this equation?(二分查找)
- skynet定时器源码分析
- 网络爬虫
- Android数据存储之操作SQLite
- ✅确定下来的一种说法
- Java 设计模式之单例模式