Javascript

Javascript Postman Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan Postman Sort algoritmasını anlatacağım. Hadi başlayalım !

Postman Sort algoritması, postacı problemi olarak da bilinen bir sıralama algoritmasıdır. Bu algoritma, postacının belirli bir bölgedeki posta kutularını en kısa mesafede ziyaret etmesi gerektiği bir senaryoda kullanılır. Bu makalede, Postman Sort algoritmasının nasıl çalıştığını ve JavaScript kullanarak nasıl uygulayabileceğimizi öğreneceğiz.

Postman Sort Algoritması

Postman Sort algoritması, sıralanacak öğelerin bir harita üzerinde konumlandırıldığı ve postacının bu öğeleri ziyaret etmek için en kısa yolu bulması gerektiği bir senaryoda kullanılır. Algoritma, her öğenin bir koordinat çifti ile temsil edildiği bir dizi öğeleri sıralamak için kullanılır. Örneğin, aşağıdaki koordinatları içeren bir dizi düşünelim:

const coordinates = [
  [0, 0],
  [3, 5],
  [2, 3],
  [4, 6],
  [1, 2],
];

Bu koordinatlar, bir haritada öğelerin konumunu temsil eder. Şimdi, bu öğeleri ziyaret etmek için en kısa yolu bulmak için Postman Sort algoritmasını kullanabiliriz.

Javascript Kodu

Postman Sort algoritması, her bir öğenin diğer tüm öğelere olan mesafesini hesaplar ve öğeleri bu mesafelere göre sıralar. Bu mesafeler, öklid mesafesi gibi bir mesafe hesaplama formülü kullanılarak hesaplanabilir. Öklid mesafesi, iki nokta arasındaki doğrudan mesafeyi hesaplamak için kullanılır. Örneğin, iki koordinat arasındaki öklid mesafesi şu şekilde hesaplanabilir:

function calculateDistance(coord1, coord2) {
  const xDiff = coord1[0] - coord2[0];
  const yDiff = coord1[1] - coord2[1];
  return Math.sqrt(xDiff ** 2 + yDiff ** 2);
}

Bu fonksiyon, iki koordinat arasındaki öklid mesafesini hesaplamak için kullanılır. Şimdi, bu fonksiyonu kullanarak her bir öğenin diğer öğelere olan mesafelerini hesaplayabiliriz:

function calculateDistances(coordinates) {
  const distances = [];
  for (let i = 0; i < coordinates.length; i++) {
    const row = [];
    for (let j = 0; j < coordinates.length; j++) {
      row.push(calculateDistance(coordinates[i], coordinates[j]));
    }
    distances.push(row);
  }
  return distances;
}

Bu fonksiyon, her bir öğenin diğer tüm öğelere olan mesafelerini hesaplamak için kullanılır. Şimdi, bu mesafeleri kullanarak öğeleri sıralayabiliriz:

function postmanSort(coordinates) {
  // Mesafeleri hesapla
  const distances = calculateDistances(coordinates);

  // Öğeleri mesafelerine göre sırala
  const sortedIndices = [...Array(coordinates.length).keys()].sort((a, b) => {
    let distanceA = 0;
    let distanceB = 0;
    for (let i = 0; i < coordinates.length; i++) {
      distanceA += distances[a][i];
      distanceB += distances[b][i];
    }
    return distanceA - distanceB;
  });

  // Sıralı koordinatları döndür
  return sortedIndices.map(index => coordinates[index]);
}

Bu fonksiyon, önce tüm mesafeleri hesaplar, sonra öğeleri mesafelerine göre sıralar ve son olarak sıralanmış koordinatları döndürür. Bu algoritma, Postman Sort algoritmasının temel mantığını takip eder. Örnek Kullanım Şimdi, Postman Sort algoritmasını kullanarak koordinatları sıralamak için bir örnek oluşturalım:

const coordinates = [
  [0, 0],
  [3, 5],
  [2, 3],
  [4, 6],
  [1, 2],
];

const sortedCoordinates = postmanSort(coordinates);

console.log(sortedCoordinates); // [[0, 0], [1, 2], [2, 3], [3, 5], [4, 6]]

Bu örnekte, Postman Sort algoritması kullanılarak koordinatlar sıralanır ve sıralanmış koordinatlar konsola yazdırılır.

Sonuç

Bu makalede, Postman Sort algoritmasının nasıl çalıştığını ve JavaScript kullanarak nasıl uygulanabileceğini öğrendik. Postman Sort algoritması, postacı problemi olarak bilinen bir senaryoda kullanılır ve bir dizi öğeleri en kısa mesafede ziyaret etmek için kullanılır. Bu algoritma, öğelerin konumlarını hesaplamak için öklid mesafesi gibi bir mesafe hesaplama formülü kullanır ve öğeleri mesafelerine göre sıralar. Postman Sort algoritması, JavaScript gibi birçok programlama dilinde kullanılabilir ve çeşitli senaryolarda faydalı olabilir.

Evet Javascript ile Postman Sort algoritması bu şekilde olmakta. Tüm Javascript yazılarımıza buraya, diğer sıralama algoritmaları ile ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu