表示一种算法相对于另一种算法的加速作为输入大小的函数

时间:2017-10-27 12:51:26

标签: algorithm performance optimization time-complexity

我有两个矩阵乘法算法 - 一个比另一个更有效 - 并且在计算N的两个N x N = [500, 1000, 1500, 2000, 2500]矩阵的乘积时测量了两者的速度。 / p>

我现在想表明速度的总体改进是N的函数。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以将曲线拟合为快速运行时与慢速运行时的比率;结果曲线将根据输入大小为您提供加速。

为了使其真正有用,我建议您确定每种算法的最佳和最差情况;所以你确定了四套:

  • 快速算法的最佳案例
  • 快速算法的最坏情况
  • 慢速算法的最佳案例
  • 慢速算法的最坏情况

理想情况下,最佳情况和最差情况是相同的,在这种情况下,您可以通过采用(最佳情况慢)/(最佳情况快速)和(最差情况慢)/(最差情况下快速)来限制加速。 / p>

实际上,可能有不可忽略的输入类别代表:

  • 快速算法的最佳情况,慢速算法的最坏情况
  • 快速算法的最坏情况,以及慢速算法的最佳情况

在这种情况下,你的实际界限将是(最坏情况下慢)/(最佳情况下快)和(最佳情况下快)/(最差情况下慢)。

请注意,重要的是您已经识别出连贯的类,并且您正在比较苹果和苹果 - 也就是说,您提供的任何函数都是使用相同的情况比较算法。您需要完全理解每个单独的算法,以了解两者之比的最佳和最差情况。