C++如何实现二分法
导读:本文共2819.5字符,通常情况下阅读需要9分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:接下来,请跟着小编一起来学习吧!二分法是在一个排好序的序列(数组,链表等)中,不断收缩区间来进行目标值查找的一种算法,下面我们就来探究二分法使用的一些细节,以及常用的场景:寻找一个数;寻找左侧边界;寻找右侧边界。一、二分法的通用框架intbinarySearch(vector<int>&nums,inttarget){intleft=0,right=nums.size();... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。接下来,请跟着小编一起来学习吧!
当right=nums.size()
时,初始化的区间就变成了 ([0, right-1]),即 ([0,right));
当right=nums.size()-1
时,初始化的区间就变成了 ([0, right])。
当nums[mid] > target
时,需要将区间向左收缩,即right=mid-1
;
当nums[mid] < target
时,需要将区间向右收缩,即left = mid+1
;
当目标值不在序列中时,需要将while
的条件写成while(left<=right)
本文:
C++如何实现二分法的详细内容,希望对您有所帮助,信息来源于网络。