首页 > 其他分享 >二分法

二分法

时间:2024-04-25 15:33:38浏览次数:22  
标签:binary 22 list 43 二分法 98

def binary_find(list, target):
left, right = 0, len(list)

while left <= right:
    mid = (left + right) // 2
    print(list[mid])
    list_left = list[left:mid]
    print(list_left)
    list_right = list[mid+1:right]
    print(list_right)
    if target == list[mid]:
        return mid
    elif target in list[left]:
        right = mid
    else:
        left = mid +1
return -1

list = ['1','98','43','22','5','7','9','0','4','2','3','5','18','99','234','123','55']

print(binary_find(list, '1'))
4
['1', '98', '43', '22', '5', '7', '9', '0']
['2', '3', '5', '18', '99', '234', '123', '55']
5
['1', '98', '43', '22']
['7', '9', '0']
43
['1', '98']
['22']
98
['1']
[]
1
[]
[]
0

标签:binary,22,list,43,二分法,98
From: https://www.cnblogs.com/zenopan101861/p/18157832

相关文章

  • python --二分法学习
    deffound_number(need_vaule,l):print(l)mid_index=len(l)//2mid_value=l[mid_index]print("mid_valueis%s"%(mid_value))ifmid_value>need_vaule:l=l[:mid_index]print('needtofind1')......
  • 蓝桥杯-跳石头(二分法)
    0.题目题目描述一年一度的「跳石头」比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至......
  • lc162 寻找峰值(二分法)
      二分法找部分有序数组题class Solution {    public int findPeakElement(int[] nums) {     int left=0;     int right=nums.length-1;     while(left<right){//因为这道题需要用mid和mid+1比较,所以左右不可以相等否则mid+1会越界  ......
  • 最长上升子序列——二分法
    前置设lowilow_ilowi​:长度为......
  • 和为给定数(二分法)
    题目: 描述给出若干个整数,询问其中是否有一对数的和等于给定的数。输入共三行:第一行是整数n(0<n<=100,000),表示有n个整数。第二行是n个整数。整数的范围是在0到10^8之间。第三行是一个整数m(0<=m<=2^30),表示需要得到的和。输出若存在和为m的数对,输出两个整数,小的在......
  • ·跟着代码随想录刷力扣· ·数组部分· 2. 二分法
    leetcode题目:704二分法一、回顾顺序搜索(一)无序列表的顺序搜索,时间复杂度O(n)defsearch(self,nums:List[int],target:int)->int:pos=0whilepos<len(nums):ifnums[pos]==target:returnpos......
  • 二分法
    概述二分查找详解.mdSTLC++二分查找库二分查找库闭区间、左闭右开区间和开区间视频讲解二分法classSolution{//lower_bound返回最小的满足nums[i]>=target的i//如果数组为空,或者所有数都<target,则返回nums.size()//要求nums是非递减的,即......
  • 代码随想录第一天-双指针+二分法
    参考资源:https://programmercarl.com/、ChatGPT3.5语言:Java二分法二分法,又称为二分查找或折半查找,是一种在有序数组中查找目标值的算法。它的基本思想是将目标值与数组中间的元素进行比较,若目标值等于中间元素,则查找成功;若目标值小于中间元素,则在数组的左半部分继续查......
  • 3月22日二分法查找
    二分查找:二分查找也叫折半查找,二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。普通查找的时间复杂度为O(n),二分查找的时间复杂度仅需要O(log2^n)查找的实现原理:先定左右边界,之后比较待查找元素与中间元素谁大谁小,如果中间值大于目标值,那么右边界等于中......
  • [数组练习题]二分法查找操作实例:使用二分法查找有序数组中元素。 找到返回索引,不存在
    文章目录题干一、题目分析1.定义数组,用于后续在数组中查找元素2.对数组进行排序3.定义方法4.调用方法,打印输出二、代码1.代码块2.一图流总结题干提示:这段是题干,仔细阅读仔细分析:二分法查找操作:使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。......