0

当我发现涉及减法和总和(曼哈顿距离)之间的绝对值的公式在执行时间上的效率低于涉及两个幂表达式之和的平方根的公式时,我正在使用 JavaScript 进行编程任务(欧几里得距离)。我在这里做错了什么还是正常的?我认为绝对值不会很难执行。

function Man_dist(x0, y0, x1, y1) {
  return Math.abs(x1 - x0) + Math.abs(y1 - y0);
}

function Eucl_dist(x0, y0, x1, y1) {
  return Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));
}

console.time("Execution time")用来测试性能,我发现 Eucl_dist 通常比 Man_dist 低几微秒:

  console.time("Man Execution time");
  Man_dist(5, 3, 24, 23);
  console.timeEnd("Man Execution time");
  
  console.time("Eucl Execution time");
  Eucl_dist(5, 3, 24, 23);
  console.timeEnd("Eucl Execution time");

我根据@Bergi 的建议发布了我用于基准测试的代码

4

0 回答 0