时间:2021-05-20
折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。
A 搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;
B 如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。
C 如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。
时间复杂度折半搜索每次把搜索区域减少一半,时间复杂度为。
(n代表集合中元素的个数)空间复杂度
复制代码 代码如下:
/// <summary>
/// 二分查找
/// </summary>
/// <param name="arr"></param>
/// <param name="low">开始索引 0</param>
/// <param name="high">结束索引 </param>
/// <param name="key">要查找的对象</param>
/// <returns></returns>
public static int BinarySearch(int[] arr, int low, int high, int key)
{
int mid = (low + high) / 2;
if (low > high)
return -1;
else
{
if (arr[mid] == key)
return mid;
else if (arr[mid] > key)
return BinarySearch(arr, low, mid - 1, key);
else
return BinarySearch(arr, mid + 1, high, key);
}
}
实例:
复制代码 代码如下:
int[] y = new int[] {1,2,3,4,5,6,7,8,9,10,11,12,13 };
int rr = BinarySearch(y, 0, y.Length - 1, 13);
Console.Write(rr); //12
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#二分查找算法。分享给大家供大家参考。具体实现方法如下://inputarrayisassumedtobesortedpublicintBina
C++中二分查找递归非递归实现并分析二分查找在有序数列的查找过程中算法复杂度低,并且效率很高。因此较为受我们追捧。其实二分查找算法,是一个很经典的算法。但是呢,
C语言数据结构中二分查找递归非递归实现并分析前言:二分查找在有序数列的查找过程中算法复杂度低,并且效率很高。因此较为受我们追捧。其实二分查找算法,是一个很经典的
本文实例讲述了C++二分查找(折半查找)算法。分享给大家供大家参考,具体如下:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表
本文实例为大家分享C++二分查找算法,通过改变边界位置来进行查找的方法,代码如下:#includeusingnamespacestd;intsearch(int