JavaScript 中物件之間的最短距離


在這個問題中,我們必須計算並找到 JavaScript 中兩個給定物件之間的最短距離。因此,我們將編寫一個函式來執行此操作,並且還將檢視其時間和空間複雜度。我們必須以某種方式考慮物件的位置和座標。

理解問題

問題要求找到兩個給定物件之間的最短路徑。因此,我們將使用兩個座標。並定義一個具有四個引數的函式。這些引數將表示兩個物件的 x 和 y 座標。在函式內部,將計算兩個物件之間 x 和 y 座標的差異。然後將使用距離公式計算兩個物件之間的距離。

給定問題的邏輯

正如我們所理解的,我們必須計算兩個物件之間的距離。因此,我們需要遵循一些步驟才能獲得所需的輸出。首先建立一個物件,其座標陣列作為值,識別符號作為鍵。因此,我們需要定義一個函式來處理該物件。之後,我們將開始一個數組並儲存座標。遍歷物件值並將它們與物件識別符號對映。根據 x 座標和識別符號對座標進行排序。使用距離公式計算距離,如果當前距離較短則更新結果。最後返回包含最短距離所選座標的結果陣列。

演算法

步驟 1:定義一個函式來計算兩個物件 x 和 y 之間的距離。我們在函式內部給出了四個引數,分別命名為 x1、x2、y1 和 y2。

步驟 2:計算 x1 和 x2 之間的差值,以及 y1 和 y2 之間的差值。並將這些差異分別儲存在 deltaX 和 deltaY 中。

步驟 3:現在我們將計算 deltaX 和 deltaY 乘積的平方根。

步驟 4:最後,我們將返回我們在上述步驟中計算的距離。

示例

//function to calculate the distance between two objects
function calculateDistance(x1, y1, x2, y2) {
   const deltaX = x2 - x1;
   const deltaY = y2 - y1;
   const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
   return distance;
  }
 
  // Example usage
  const object1 = { x: 0, y: 1 };
  const object2 = { x: 4, y: 6 };
  const distance = calculateDistance(object1.x, object1.y, object2.x, object2.y);
  console.log(distance);

輸出

6.4031242374328485

複雜度

使用上述函式計算兩個物件之間最短距離的時間複雜度為 O(1),這是常數,因為除了物件的大小之外,解決方案還執行固定數量的算術運算。我們用來計算距離的公式使用基本的數學運算,如減法、乘法和平方根,因此這些運算具有常數時間複雜度。

結論

在給定的問題陳述中,我們必須藉助 Javascript 和基本的數學運算找到兩個給定物件之間的最短距離。給定的解決方案根據物件的座標計算距離並給出結果。它具有恆定的時間複雜度,確保執行時間在物件大小之外保持不變。

更新於: 2023-08-16

442 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.