微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

分析用C编写的函数的时间复杂度

我在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 举报,一经查实,本站将立刻删除。

相关推荐