我在C中实现了最长公共子序列问题.我希望比较执行解决方案的递归版本和动态编程版本所花费的时间.如何在各种输入的两个版本中找到运行LCS功能所需的时间?我也可以使用SciPy在图表上绘制这些值并推断时间复杂度吗?
提前致谢,
剃刀
解决方法
对于你问题的第二部分:简短的回答是肯定的,你可以.您需要以便于从
Python解析的格式获取两个数据集(每个解决方案一个).就像是:
x y z
在每一行上,其中x是序列长度,y是动态解决方案所用的时间,z是递归解决方案所用的时间
然后,在Python中:
# Load these from your data sets. sequence_lengths = ... recursive_times = ... dynamic_times = ... import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) p1 = ax.plot(sequence_lengths,recursive_times,'r',linewidth=2) p2 = ax.plot(sequence_lengths,dynamic_times,'b',linewidth=2) plt.xlabel('Sequence length') plt.ylabel('Time') plt.title('LCS timing') plt.grid(True) plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。