Python | 有序序列中元素的查找问题解决方法

问题描述示例:如何查找有序序列中某一的元素输入:[1,2,3,4,5,6,……,100]   61 #查找的元素输出:61解决方案查找元素。一般地,我们可以用for循环进行遍历,再用if语句进行查找。但是这种方法在面对一个有很多元素的序列时,将会执行很多次,消耗的时间多。 此算法的时间复杂度为O(n)。在这里我们可以使用二分查找法。如在[1,2,3,4,…..,100]中查找61。先用50(1—100的中位数)进行比较,因为50比61小,所以1-50的元素就不用进查找(即排除1-50的元素)。再用75(51-100的中位数)进行比较,因为75比61大,所以排除75-100的元素。再用62(51-74的中位数)进行比较,因为62比61大,所以忽略62-75的元素。然后反复地用这个方法排除多余的元素,直到剩下一个元素(61 需要查找的元素),执行了7次。此算法的时间复杂度为O(n)。def my_func(my_list, searched_number):  #二分法start_number_index = 0end_number_index = len(my_list) - 1while start_number_index <= end_number_index:mid_number_index = (start_number_index + end_number_index) // 2mid_number = my_list[mid_number_index]if mid_number <  searched_number:start_number_index = mid_number_index + 1elif mid_number > searched_number:end_number_index = mid_number_index - 1else:return '找到了需要查找的数字%d' % searched_numbermy_list = list(range(1,101))searched_number = 61print(my_func(my_list, mid_number))# 结果 找到了需要查找的数字 61结语有序序列中元素的查找有两种方法:一是用for循环进行遍历查找。二是用二分法进行查找。实习编辑:李欣容作者:成浩宇、敖泳、潘钰昆稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • Python中实现二分查找的2种方法?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • 百度从Google学来的面试题,想进大厂必备!

    今天是小浩算法"365刷题计划"第59天.为大家分享一道FLAG和BAT都出现过的经典面试题.题目有一定难度,建议大家耐着性子看完!不要说没天赋看不懂.在这个浮躁到努力的人都很少的 ...

  • 算法创作 | 0到n-1中缺失的数字问题解决方法

    问题描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字.示例1:输入:[0,1,3 ...

  • 净水技术|流动注射仪在阴离子表面活性剂测定中的应用及其问题解决方法

    <净水技术> 中国科技核心期刊 追踪行业热点与焦点,让你每天比别人知道多一点 关注 王卉 (南京水务集团有限公司水质监测中心,江苏南京 210036) 流动注射仪通常由自动进样器.自动样品 ...

  • python学习——类中为什么要定义__init__()方法

    python学习--类中为什么要定义__init__()方法 geerniya 2017-08-22 21:12:41 36244 收藏 188 分类专栏: python 文章标签: python 版 ...

  • Python中什么是有序序列?列表元组及字符串

    Q:Python中的列表.元组.字符串是有序序列吗? A:当然,列表.元组.字符串是Python中的有序序列,其中列表是可变对象,元组和字符串是不可变对象,接下来我们一起来看看具体的内容介绍吧. 什么 ...

  • Python|删除有序数组中的重复项

    问题描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空 ...

  • appium+python自动化62-webview元素click失效问题解决

    前言 Appium 在切换到 webview 后,正确定位到元素,但是click () 事件后界面无响应,脚本运行正常不会报错. 主要原因是:混合APP 时监听全用的是tap事件,不是click事件 ...

  • ​LeetCode刷题实战378:有序矩阵中第 K 小的元素

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • python在Keras中使用LSTM解决序列问题

    原文链接:http://tecdat.cn/?p=8461 时间序列预测是指我们必须根据时间相关的输入来预测结果的问题类型.时间序列数据的典型示例是股市数据,其中股价随时间变化. 递归神经网络(RNN ...