首页 > 其他分享 >二分查找

二分查找

时间:2023-02-03 22:11:56浏览次数:43  
标签:二分 arr int mid binarySearch 查找 low key

#include <iostream>
using namespace std;

int binarySearch(int arr[],int low,int high,int key){
    if(low > high){
        return -1;
    }
    int mid = low + ((high - low)>>1);
    int midVal = arr[mid];
    if(midVal > key){
        binarySearch(arr,low,mid-1,key);
    }else if(midVal < key){
        binarySearch(arr,mid+1,high,key);
    }else{
        return mid;
    }
}

int main() {
    int a[] = {1,11,23,34,45,56,78,90,99};
    int res = binarySearch(a, 0, (sizeof(a) / sizeof(a[0]))-1, 23);
    cout<<"res = "<<res<<endl;
    return 0;
}

标签:二分,arr,int,mid,binarySearch,查找,low,key
From: https://www.cnblogs.com/poteitoutou/p/17090584.html

相关文章

  • POJ 2253 Frogger(并查集+二分||Dijkstra)
    DescriptionFreddyFrogissittingonastoneinthemiddleofalake.SuddenlyhenoticesFionaFrogwhoissittingonanotherstone.Heplanstovisither,but......
  • Codeforces1201 B Maximum Median (二分)
    Description:Youaregivenanarray aa of nn integers,where nn isodd.Youcanmakethefollowingoperationwithit:Chooseoneoftheelementsofthearray......
  • Treap 平衡二叉查找树
    【基本概念】Treap=Tree+Heap。Tree是指二叉搜索树,而Heap指的是二叉堆,一般是最小堆。Treap需要维护两值,一个是二叉搜索树中的键值(key),另一个是最小堆中的优先级(aux)。Treap是......
  • Educational Codeforces Round 75 D. Salary Changing(二分)
    题意就是:给n个人发工资,总钱数为s。每个人有一个工资范围。要求一个发工资方案,使得工资中位数最大,求这个中位数。考虑到中位数最大,于是我们可以二分。但是每个人的工资......
  • 二分基础
    二分(类似于单调函数求零点)二分查找在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素题目:给定一......
  • 前端算法之二分查找
    在数组中查找指定元素,如果存在就返回它的位置,如果不存在,就返回-1。这是一道非常经典的算法题,考的就是二分查找算法,首先分析二分查找的思路:假设一个数组为[3,5,19,22,......
  • 二分查找-力扣(Java)
    题目描述给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。来源:力扣(LeetCode)链接......
  • Leetcode之二分思想
    友情提示:代码在这里本文参照该仓库学习,大家可以star二分查找原理1.正常实现publicclassbinarySearch{publicintBinarySearch(int[]nums,intkey){......
  • 代码随想录算法训练营第一天 | 704. 二分查找、27. 移除元素
    704.二分查找力扣题目链接:https://leetcode.cn/problems/binary-search/核心:使用二分法前提:1)数组为有序数组2)数组中无重复元素。二分法区间的定义:......
  • 代码随想录算法训练营Day01| 数组理论基础, 704.二分查找 27.移除元素
    数组理论基础数组下标都是从0开始的。数组内存空间的地址是连续的。(正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素......