算法时间的对比 A算法的时间开销为100n^3,B的算法开销为0.5*2^n,问题规模为多大的时候B算法的更快? 两种方法, 一种是求解: 0.5*2^n<100n^3 得到的n的值就是满足条件的规模 另一种是画图: 可以比较清晰的表明随着规模增加,时间的消耗程度
# 计算可得,在小于20的时候,B算法较快 target_num=[] for i in range(100): if 0.5*2**i<100*i**3: target_num.append(i) print(target_num)
import matplotlib.pyplot as plt x=list(range(22)) y1=[0.5*2**i for i in x] y2=[100*i**3 for i in x] plt.plot(x,y1,color='red') plt.plot(x,y2,color='green') plt.legend(["A: 0.5*2**i", "B: 100*i**3"]) plt.show()