猫史档案馆


【公测 0】python 算法工具包 "Utlities" 0.1 版本

用户:悦qr8R悦qr8R查看:0 回复:0 评论:0 创建时间:2023-07-14T21:21:57


算法是编程的核心。

所以,实现算法至关重要。

所以,"Utlities"就是为了算法而生的。

谨在此发布 Utlities 0.1 的源代码。

from time import time
from decimal import *
import random as r 
def generate_test_data(l:int):
    """
    排序、查找算法必备。
    会返回3个列表,分别是:
    无序列表,正序列表,倒序列表。
    列表的长度由参数l决定。
    """
    arr_co=list(range(l))
    arr_rev=list(reversed(arr_co[:]))
    arr_seq=arr_co[:]
    r.shuffle(arr_co)
    return arr_co,arr_seq,arr_rev
def timing_test(func):
    """
    计时函数。
    通过运行该测试来获取函数的运行时间。
    可以通过@语法实现计时嵌入。
    两个计时函数都会产生一个__testend.txt。
    """
    def wrapper(*args,**kwargs):
        t1=time()
        ret=func(*args,**kwargs)
        t2=time()
        t3=t2-t1
        with open("__testend.txt","a") as f:
            f.write(f"func {func.__name__} tooks {t3} times\n") 
        return ret
    return wrapper
def timing_test_decimal(func):
    """
    计时函数。
    通过运行该测试来获取函数的运行时间。
    可以通过@语法实现计时嵌入。
    运用Decimal来提高精度值。
    两个计时函数都会产生一个__testend.txt。
    """
    def wrapper(*args,**kwargs):
        t1=Decimal(str(time()))
        ret=func(*args,**kwargs)
        t2=Decimal(str(time()))
        t3=t2-t1
        with open("__testend.txt","a") as f:
            f.write(f"func {func.__name__} tooks {t3} times\n") 
        return ret
    return wrapper
if __name__=="__main__":
    @timing_test
    def ticking():
        for i in range(114514):
            pass
    ticking()


回复

上一页1 页 / 共 0下一页