zoukankan      html  css  js  c++  java
  • 算法二分法

    """
    """
    """
    算法之二分法:
    1: 算法 解决问题的高效方法
     f = [1,3,4,5,6,7,8,9]
     我想取出这个最大的数字9怎么取出是不是可以通过for循环取出来
     如:num = 9
     for i in f:     注释: 通过for循环吧f的值一个一个的给i
          if num==i:    如果当i==9时 那么print 打印findit  表示找到了
              print("find it")
    
    二:二分法 容器类型里面的数字必须有大小顺序
    """
    f = [1,3,4,5,6,7,8,9]
    num = 10
    def get_num(f,num):
        if not f:
            print("你说输入的找不到")
            return
        print(f)
        middle_index = len(f) // 2
        # 判断num跟middle_index对应的数字的大小
        if num > f[middle_index]:
            # 切取列表右半部分
            num_right = f[middle_index + 1:]
            # 再递归调用get_num函数
            get_num(num_right, num)
        elif num < f[middle_index]:
            # 切取列表左半部分
            num_left = f[0:middle_index]
            # 再递归调用get_num函数
            get_num(num_left, num)
        else:
            print('find it', num)

    通过切分 吧 列表的值 从中间劈开 然后判断 是否在里面 看是在左边还是在右边 然后重复这样的操作 即可 从而达到最后的目的
  • 相关阅读:
    BZOJ 1009 GT考试
    BZOJ 2085 [POI2010] Hamsters
    BZOJ 3160 万径人踪灭
    左偏树 / 非旋转treap学习笔记
    BZOJ 3217 ALOEXT
    BZOJ 3065 带插入区间第K小值
    BZOJ2716 天使玩偶
    XSY1659 [HNOI2012]永无乡
    BZOJ1367【Baltic2004】sequence
    蔡勒公式 计算星期
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/11177153.html
Copyright © 2011-2022 走看看