比较两种算法的运行时间



我只是想确认我的解释和计算是否正确。如果我错了,请纠正我。

A 算法和

B 算法的运行时间分别为 8.26789 秒和 814.21416 秒。

如果我使用计算说 A 比 B 快 98.98%,是否正确:(1-8.26789/814.21416)*100% ?

谢谢。

由于您希望能够说出 A 比 B 快多少,因此最好用速度来定义它。 当 A 比 B 快 2 倍时,可以理解为 A 的速度是 B 速度的两倍。 速度与时间成反比。 算法 A 和 B 在做相同的工作时被测量,我们可以定义速度

  • SA = 1 个作业/8.26789 秒 = 0.12095 个作业/秒
  • SB = 1 个作业/814.21416 秒 = 0.0012282 个作业/秒

现在让我们考虑两辆车,一辆以 55 英里/小时的速度行驶一定距离,而另一辆以 50 英里/小时的速度行驶,我们会说更快的汽车是

  • 快 10% = ((55 英里/小时/50 英里/小时)-1) x 100%。

将该公式应用于您的算法,

  • (SA/SB)-1) x 100%
  • =((0.12095 个作业/秒/0.0012282 个作业/秒)-1) x 100%
  • = (98.48 - 1) x 100%
  • = 9747 %

这两种算法在速度上差异很大(几乎是 100 倍),因此速度快百分比可能不是比较它们的最佳方式。 最好说 A 比 B 快 x 倍

  • A 比 B 快 X 倍
  • X = SA/SB
  • X = 98.48

算法 A 比 B 快 98.48 倍。

有关Mathematics Stack Exchange中有关此主题的讨论,请参见此处。

虽然amdb的答案是正确的,但如果这是一个家庭作业练习,我怀疑这可能是一个旨在测试你对计算复杂性的了解的技巧问题。

您无法根据单个测量来判断算法 A 和 B 的相对速度。

举个例子,快速排序算法是 O(n log n),如果你对大量数字进行排序,则比 O(n^2)) 的气泡排序算法更快。但是,如果您仅对每个排序进行 3 个数字的基准测试,则气泡排序几乎肯定会比快速排序运行得更快。针对一组输入的性能不会告诉您有关算法的比较性能的信息,它只是告诉您算法与该特定输入的相对性能,这不是计算复杂度的测量方式。

相关内容

  • 没有找到相关文章

最新更新