首页 > 其他分享 >折半查找BinarySearch

折半查找BinarySearch

时间:2024-07-20 09:57:35浏览次数:17  
标签:折半 right int mid BinarySearch 查找 left

折半查找的前提是在有序序列里查找。
#include<iostream>
using namespace std;

int BinarySearch(int a[], int size,int x)
{
	int left = 0, right = size-1; 
	while (left <= right)
	{
		int mid =(left + right) / 2;
		if (a[mid] == x)
			return mid;
		else if (a[mid] > x)
			right = mid - 1;
		else left = mid + 1;
	}
	return -1;
}

int main()
{
	int arr[10] = { 1,5,14,18,20,21,45,80,81,100};
	int x;
	cout << "输入要查询的数:";
	cin >> x;
	int result=BinarySearch(arr,10, x);
	if (result == -1)
	{
		cout << "该元素未找到" << endl;
	}
	else cout << "该元素存在且索引为"<<result << endl;
	return 0;

}

标签:折半,right,int,mid,BinarySearch,查找,left
From: https://blog.csdn.net/weixin_73598089/article/details/140465164

相关文章

  • 二分查找
    二分查找是很经典的算法了,写的时候虽然写对了,后面看了文章才知道细节还是蛮多的。像target所在的区间,有[left,right]和[left,right)两种写法,会极大的影响边界处理条件。实质就在于我们需要在定义的区间内对target进行搜索,而不能有任何遗漏。后面的处理要和前面的区间范围配合。逻......
  • 从零开始学Java(超详细韩顺平老师笔记梳理)05——数组(语法,赋值机制,拷贝反转)、排序(冒泡排
    文章目录前言一、数组1.基础语法1)介绍2)使用(动态、静态初始化语法与使用)3)注意事项和细节2.数组赋值机制(ArryAssign)3.数组拷贝4.数组反转(reserve)5.数组的扩容与缩减二、排序三、查找四、二维数组(TwoDimensionalArry)1.快速入门2.使用3.案例:打印一个10行的......
  • VS快速全局查找Unity死循环代码
    1、编写一个死循环方法,然后运行调试vsusingUnityEngine;publicclassDeadLoop:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){DeadLoopMethod();}voidDeadLoopMethod(){while(t......
  • 查找时间序列数据中异常值的终极指南(第 1 部分)
    时间序列分析中异常值检测的有效统计方法和工具   异常值:这些令人困扰的数据点可能会扭曲统计模型、扭曲预测并破坏决策过程。    雲闪世界专门介绍时间序列数据中异常值的识别和管理的四部分系列文章的开篇,我们将探索视觉和统计方法来有效识别时间序列数据中的......
  • day1 二分查找(及其进阶)和移除元素的双指针法
    基础概念算法的单调性:问题的规模随着算法的推进不断缩减(如704中开始的查找区间是[lo,hi),随着循环的进行,问题规模确实在不断的缩小)算法的不变性:在初始状态下自然满足,当问题的有效规模缩减为0时,不变性应该随即等于正确性。(如704中开始的查找区间是[lo,hi),最终要么直接命中,要么......
  • Day06 (find查找、时间同步)
    一、find查找命令1.find查找根据路径、选项、选项的值来查找文件-name  根据文件名称包含来查找-type   根据文件类型来查找-mtime 根据文件最后修改时间搜索+号 搜索前几天的文件信息-号 搜索几天之内的文件信息find/opt/-name"*.txt"-mtime+3......
  • JavaScript字符串对象查找字符出现次数
      查找字符串中某个字符出现的次数思路:1.根据indexOf()方法的特性只会返回要查找的字符出现再字符串中的第一次的位置     2.而且想要继续往后查找则需要跳过前一个已经查询了的字符的位置,则可以在原先位置加       1后再查找     3.将......
  • 前端开发中的二分查找算法
    在前端开发中,处理和搜索大量数据时,效率是一个关键因素。二分查找算法是一种高效的查找算法,适用于在有序数组中快速找到目标值。本文将详细介绍二分查找算法的基本原理、实现方法及其在前端开发中的应用。什么是二分查找?二分查找(BinarySearch)是一种在有序数组中查找目标值的算法......
  • Linux的文件查找吉计划任务练习题
    #练习1 使用ls查看/etc/目录下的所有文件信息[root@gym~]#ls/etc/#练习2 使用ls查看/etc/⽬录下名包含“a”字⺟的⽂件或者⽬录信息[root@gym~]#ls/etc/|grep'a'#练习3 使用ls查看/etc/目录下以“.conf”结尾的文件信息[root@gym~]#ls/etc/*.conf#......
  • python-查找算法
    查找算法1.线性查找2.二分查找3.插值查找4.斐波那契查找1.线性查找"""线性查找:对于被查找的序列没有顺序要求,可以是有序的,也可以是无序的,查找时从线性表的起始位置按照顺序匹配,找到元素时,返回该元素在原始字符串的下标若匹配完整个序列......