Python 二分查找法 逃离我推掉我的手 2023-02-17 02:40 95阅读 0赞 # Python 二分查找法 # ![在这里插入图片描述][20200611101848864.png_pic_center] ## 算法要求 ## 1. 必须采用顺序存储结构 2. 必须按照关键字大小有序排列 ## 复杂度 ## 1. 平均时间复杂度:*O*(log n) 2. 最坏时间复杂度:*O*(log n) 3. 最优时间复杂度:*O*(1) 4. 空间复杂度:*O*(1) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg1Njg3MQ_size_16_color_FFFFFF_t_70_pic_center] ## 示例代码 ## def binary_search(data_list, val): """ 二分查找法/折半搜索算法/对数搜索算法 while循环方法 :param data_list: 数据列表 :param val: 查找的目标值 :return: 目标值的索引 """ low = 0 # 最小索引值 high = len(data_list) - 1 # 最大索引值 while low <= high: mid = (low + high) // 2 # 中间数索引 if data_list[mid] == val: # 如果中间数索引等于val, 返回 return mid elif data_list[mid] > val: # 如果val在中间数左边, 移动high索引 high = mid - 1 else: # 如果val在中间数右边, 移动low索引 low = mid + 1 return # val不存在, 返回None ret = binary_search(list(range(1, 100000000)), 8) print(ret) list(range(1, 100000000)), 8) print(ret) [20200611101848864.png_pic_center]: https://img-blog.csdnimg.cn/20200611101848864.png#pic_center [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg1Njg3MQ_size_16_color_FFFFFF_t_70_pic_center]: https://img-blog.csdnimg.cn/20200611101902342.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg1Njg3MQ==,size_16,color_FFFFFF,t_70#pic_center
相关 二分查找法 前提是在已经排好序的数组中,通过将待查找的元素与中间的索引值对应的元素进行比较,若大于中间索引值对应的元素,去右半部分查找,否则,去左半部分查找。以此类推,直到找到为止;找不到 野性酷女/ 2024年01月01日 06:49/ 0 赞/ 408 阅读
相关 二分查找法 理解二分查找 二分查找,在一组有序数中查找你想要的找到的数值。比如在数组arr\[10\] = \{1,2,3,4,5,6,7,8,9,10\},中查找一个数字7。 电玩女神/ 2023年10月08日 14:16/ 0 赞/ 159 阅读
相关 二分查找法 概述:二分查找法又称折半查找法,是一种效率较高的查找方式,但,二分查找法要求数组必须采用顺序存储结构有序排列。 下面是相关代码: public class Demo 你的名字/ 2023年10月03日 11:19/ 0 赞/ 28 阅读
相关 Python-二分查找法 Python-二分查找法 二分查找法是运用`分治策略`的典型例子。 from typing import List class BinaryS 忘是亡心i/ 2023年06月25日 08:21/ 0 赞/ 96 阅读
相关 Python 二分查找法 Python 二分查找法 ![在这里插入图片描述][20200611101848864.png_pic_center] 算法要求 1. 必须采用顺序存储结构 2 逃离我推掉我的手/ 2023年02月17日 02:40/ 0 赞/ 96 阅读
相关 二分查找法 想使用二分查找法,前提是这个数列需要是有序的 template<typename T> int binarySearch(T arr[],int n, T t 柔光的暖阳◎/ 2022年10月21日 03:49/ 0 赞/ 256 阅读
相关 二分查找法 算法描述 折半的思想去定位要查找的元素 步骤: 1. 前提:有已排序数组 A(假设已经做好) 2. 定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、 红太狼/ 2022年09月14日 09:58/ 0 赞/ 286 阅读
相关 二分查找法 package com.wdl.day07; / @创建人 wdl @创建时间 2021/8/9 @描述 / public class 小鱼儿/ 2022年09月04日 01:45/ 0 赞/ 124 阅读
相关 二分查找法 二分查找法,所需查找次数最高为logn,以2为底 def binary_search(list, item): low and high keep tr 心已赠人/ 2022年05月18日 00:41/ 0 赞/ 301 阅读
相关 二分查找法 最基本的二分查找法、不考虑数组有重复数据、匹配到返回具体元素、没有返回-1 public class TestBinary { public int 淡淡的烟草味﹌/ 2022年02月27日 09:24/ 0 赞/ 392 阅读
还没有评论,来说两句吧...