首页 > 编程语言 > 详细

【05】查找算法——顺序查找和二分查找

时间:2021-07-19 09:59:42      阅读:16      评论:0      收藏:0      [点我收藏+]

顺序查找,时间复杂度O(N);
二分查找,时间复杂度O(logN),但是二分查找要求顺序表。

函数:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中.

enumerate(sequence,[start=0])

seasons = [‘Spring‘, ‘Summer‘, ‘Fall‘, ‘Winter‘]

list(enumerate(seasons))

[(0, ‘Spring‘), (1, ‘Summer‘), (2, ‘Fall‘), (3, ‘Winter‘)]

def linear_serach(list, value):
   for ind, v in enumerate(list):
       if v == value:
           return ind
   else:
       return None


def bineary_search(list, val):
   b = 0  # begin
   e = len(list) - 1  # end

   while b <= e:
       m = (b + e) // 2  # end
       if list[m] == val:
           return m
       elif list[m] < val:     #目标值在mid的右侧
           b = m + 1
       else:
           e = m - 1
   else:                       #找不到值
       return None


list_test = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(linear_serach(list_test, 7))
print(bineary_search(list_test, 10))

【05】查找算法——顺序查找和二分查找

原文:https://www.cnblogs.com/ua-21/p/15028432.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!