美文网首页
【数据结构】二分查找(C++实现)

【数据结构】二分查找(C++实现)

作者: w8ed | 来源:发表于2019-04-11 11:21 被阅读0次

二分查找的一个重要前提:表中的元素必须有序,且仅限于顺序存储结构。

include <iostream>

using namespace std;

int BinarySearch(int *a, int n, int key);

//注意:表中的元素必须有序,且仅限于顺序存储结构
int BinarySearch(int *a, int n, int key)
{
int low = 0;
int high = n - 1;
while (low <= high)
{
int mid = (low + high) / 2;
if (a[mid] == key)
{
return mid;
}
if (key < a[mid]) //往左区间找
{
high = mid - 1;
}
else //往右区间找
{
low = mid + 1;
}
}

return -1;

}

int main()
{
int a[11] = {5, 16, 20, 27, 30, 36, 44, 55, 60, 67, 71};
int n = 11;

cout << "search 27 = " << BinarySearch(a, n, 27) << endl;
cout << "search 65 = " << BinarySearch(a, n, 65) << endl;
cout << system("pause");
return 0;

}


参考资料:《数据结构(C语言版)》p166-p169

相关文章

  • 二分查找

    二分查找是一种查询效率非常高的查找算法。又称折半查找。 起初在数据结构中学习递归时实现二分查找,实际上不用递归也可...

  • java实现二分查找-两种方式

    二分查找是一种查询效率非常高的查找算法。又称折半查找。 起初在数据结构中学习递归时实现二分查找,实际上不用递归也可...

  • leetcode 69. x 的平方根

    leetcode 二分查找:C++:

  • 【爬虫】数据结构实现折半查找的算法

    数据结构实现折半查找的算法 折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码...

  • 常考的数据结构与算法之算法

    本文记录一下我学习数据结构与算法中算法的知识点,使用的语言是C/C++语言 查找 二分查找又叫折半查找,要求线性表...

  • 简单算法

    冒泡排序: while 实现的二分查找: 递归实现二分查找:

  • 【数据结构】二分查找(C++实现)

    二分查找的一个重要前提:表中的元素必须有序,且仅限于顺序存储结构。 include usin...

  • leetcode第34题: 在排序数组中查找元素的第一个和最后一

    题目描述 考点 数组 二分查找 代码实现 相当于实现c++中的lower_bound函数和upper_bound函数;

  • 排序算法

    算法与数据结构基础 查找算法: 二分查找法: 简介:二分查找法又被称为折半查找法,用于预排序的查找问题 过程: 如...

  • 算法之二分查找

    二分查找 二分查找是著名、高效并有应用广泛的查找算法。 二分常规实现 1.循环实现 下面我用python语言实现循...

网友评论

      本文标题:【数据结构】二分查找(C++实现)

      本文链接:https://www.haomeiwen.com/subject/cdttwqtx.html