用户:
悦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()