Python | 有序序列中元素的查找问题解决方法
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 0 end_number_index = len(my_list) - 1
|
以上是关于Python | 有序序列中元素的查找问题解决方法的主要内容,如果未能解决你的问题,请参考以下文章