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)

    通过切分 吧 列表的值 从中间劈开 然后判断 是否在里面 看是在左边还是在右边 然后重复这样的操作 即可 从而达到最后的目的
  • 相关阅读:
    20140830 函数 递归
    函数 20140829
    结构体20140827
    20140826 集合
    20140822数组,应用举例
    140821 字符串,数字,日期及应用举例
    20140819 例子
    HTML基础
    登陆远程服务器
    索引 视图 游标
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/11177153.html
Copyright © 2011-2022 走看看