zoukankan      html  css  js  c++  java
  • 二分法+装饰器(带返回值,无敌参数,批量执行/取消装饰器)

    import time
    flag = True
    def timer_out(flag):
            def timer(f):
                def inner(*args,**kwargs):
                    if flag:
                        start = time.time()
                        ret = f(*args,**kwargs)
                        print("耗时:%s"%(time.time() - start))
                        return ret
                    else:
                        ret = f(*args, **kwargs)
                        return ret
                return inner
            return timer
    @timer_out(flag)
    def binary_search(iter_obj,search_data):
        high = len(iter_obj) - 1
        low = 0
        cnt = 1
        while low <= high:
            middle = (low+high) // 2
            print(f"{high},{middle},{low}")
            if iter_obj[middle] == search_data:
                return cnt
            elif iter_obj[middle] > search_data:
                high = middle - 1
            else:
                low = middle + 1
            cnt += 1
        else:
            return "no_match"
    
    
    ret = binary_search(range(100),111)
    print(ret)
    
    @timer_out(flag)
    def fun(iter_obj,s_data):
        cnt = 0
        for i in iter_obj:
            if i == s_data:
                return cnt
            cnt += 1
        else:
            return "no_match"
    ret = fun(range(100),111111111)
    print(ret)
    

      

  • 相关阅读:
    mac安装go环境
    Ubuntu-Mininet安装
    安装pyenv
    linux下安装weblogic
    C#常用方法
    jenkins部署net core ——2
    jenkins部署net core ——1
    Inno Steup
    安装两个SQL server 实例
    C#线程启动、暂停、恢复、停止怎么实现
  • 原文地址:https://www.cnblogs.com/duoduoyichen/p/10558928.html
Copyright © 2011-2022 走看看