二分查找(对半查找)的实现
来源:互联网 发布:江南大学网络教育专业 编辑:程序博客网 时间:2024/05/19 14:56
两个版本的实现:循环,以及递归。
namespace Data
{
int iArray[] = { 3, 8, 1, 6, 2, 5, 4, 9, 7 };
int iArray1[] = { 2,2,18,9,1,3,2,0,19,20,15,6,12 };
int iArray2[] = { 2,1,1,2 };
vector<int>iVector = { 3, 8, 1, 6, 2, 5, 4, 9, 7 };
int iSortedArray[] = { 1,2,3,4,5,6,7,8,9 };
int iSortedArray1[] = { 1,2,30,44,55,61,71,80 };
}
#pragma region Search
namespace Search
{
using namespace Data;
#pragma regionBinarySearch
int BinSearch(intdata[],int left, int right,intsearch)
{
int index = -1;
while (left <=right)
{
int mid = (left +right) / 2;
if (data[mid] <search)
left = mid + 1;
else if (data[mid]> search)
right = mid - 1;
else
{
index = mid;
break;
}
}
return index;
}
int BinSearchRecursive(intdata[],int left, int right,intsearch)
{
int index = -1;
if (left <=right)
{
int mid = (left +right) / 2;
if (data[mid] >search)
index = BinSearch(data,left, mid - 1,search);
else if (data[mid]< search)
index = BinSearch(data, mid + 1,right,search);
else
index = mid;
}
return index;
}
void TestBinSearch()
{
int index = -1;
index = BinSearch(iSortedArray, 0,8, 6);
index = BinSearch(iSortedArray1,0, 7, 30);
index =BinSearchRecursive(iSortedArray, 0, 8, 6);
index =BinSearchRecursive(iSortedArray1, 0, 7, 30);
}
#pragma endregion
}
#pragma endregion
#define TEST(uSpace,method)\
{\
using namespace uSpace;\
method;\
}
int main()
{
TEST(Search, TestBinSearch());
return 0;
}
- 二分查找(对半查找)的实现
- 静态查找的方法:顺序查找、对半查找、分块查找,C++代码实现
- 静态查找的方法:顺序查找、对半查找、分块查找,C++代码实现
- C语言实现对半法查找的两种方法
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 二分查找的实现
- 对半查找算法
- 二分查找(实现)
- (基础十)折半查找的实现(二分查找)
- 二分查找法(折半查找法)的实现
- C语言实现折半查找(二分查找)的算法
- AliOS Things网络适配框架
- DeepLearning第一课第四周作业(Building your Deep Neural Network: Step by Step)
- ESP8266--MQTT--ESP_MQTT固件开发笔记(四)
- 使用SQuirreL客户端工具配置连接 Phoenix
- 开关量视图
- 二分查找(对半查找)的实现
- xhr的jQuery用法总结
- IT风投
- spring data redis
- ESP8266--MQTT--ESP_MQTT固件开发笔记(五)
- springmvc请求参数获取的几种方法(转载)
- 神兽保佑,代码无bug
- HTML
- java spymemcached 简单使用