• python基础-二分法


    # 算法:是高效解决问题的办法
    # 算法之二分法

    # 需求:有一个按照从小到大顺序排列的数字列表
    # 需要从该数字列表中找到我们想要的那个一个数字
    # 如何做更高效???
    nums=[-3,4,7,10,13,21,43,77,89]
    find_num=10
    
    nums=[-3,4,13,10,-2,7,89]
    nums.sort()
    print(nums)

    # 方案一:整体遍历效率太低
    # for num in nums:
    #     if num == find_num:
    #         print('find it')
    #         break
    # 方案二:二分法
    # def binary_search(find_num,列表):
    #     mid_val=找列表中间的值
    #     if find_num > mid_val:
    #         # 接下来的查找应该是在列表的右半部分
    #         列表=列表切片右半部分
    #         binary_search(find_num,列表)
    #     elif find_num < mid_val:
    #         # 接下来的查找应该是在列表的左半部分
    #         列表=列表切片左半部分
    #         binary_search(find_num,列表)
    #     else:
    #         print('find it')
    
    # nums=[-3,4,7,10,13,21,43,77,89]
    # find_num=8
    # def binary_search(find_num,l):
    #     print(l)
    #     if len(l) == 0:
    #         print('找的值不存在')
    #         return
    #     mid_index=len(l) // 2
    #
    #     if find_num > l[mid_index]:
    #         # 接下来的查找应该是在列表的右半部分
    #         l=l[mid_index+1:]
    #         binary_search(find_num,l)
    #     elif find_num < l[mid_index]:
    #         # 接下来的查找应该是在列表的左半部分
    #         l=l[:mid_index]
    #         binary_search(find_num,l)
    #     else:
    #         print('find it')
    #
    # binary_search(find_num,nums)
    每天学习新的知识,会让自己更加充实
  • 相关阅读:
    js技巧收集(200多个)
    Ajax跨域访问的问题?
    最新软件下载提供列表
    美食家家V1.1[强力推荐]
    吉他和弦帮手以及曲子下载
    网译(在线中文英语翻译软件)[强力推荐]
    网上电子婚宴请柬
    吉他和弦帮手v2.3注册机
    1万多个英语单词mp3下载
    菜谱大全数据库下载(ACCESS)
  • 原文地址:https://www.cnblogs.com/fengpiaoluoye/p/14163527.html
Copyright © 2020-2023  润新知