instruction: Írj pszeudokódot egy Merge Sort algoritmushoz.
output: Íme a Merge Sort algoritmus pszeudokódja:
  
  ```
  algoritmus MergeSort(arr, low, high)
      if low < high
          // Keressük meg a középső pontot
          mid <- (low + high) / 2
          
          // Rekurzívan rendezzük a két felét
          MergeSort(arr, low, mid)
          MergeSort(arr, mid + 1, high)
          
          // Egyesítjük a két rendezett felet
          Merge(arr, low, mid, high)
      end if
  end algoritmus
  
  algoritmus Merge(arr, low, mid, high)
      n1 <- (mid - low + 1)
      n2 <- (high - mid)
      
      // Ideiglenes tömbök létrehozása
      let left = [1..n1]
      let right = [1..n2]
      
      // Adatok másolása az ideiglenes tömbökbe left[] és right[]
      for i <- 1-től n1-ig
          left[i] <- arr[low + i - 1]
      end for
      
      for j <- 1-től n2-ig
          right[j] <- arr[mid + j]
      end for
      
      // Egyesítsük az ideiglenes tömböket vissza arr[low..high]
      i <- 1
      j <- 1
      k <- low
      
      while i <= n1 és j <= n2
          if left[i] <= right[j]
              arr[k] <- left[i]
              i <- i + 1
          else
              arr[k] <- right[j]
              j <- j + 1
          end if
          
          k <- k + 1
      end while
      
      // Másoljuk a left[] fennmaradó elemeit, ha vannak.
      while i <= n1
          arr[k] <- left[i]
          i <- i + 1
          k <- k + 1
      end while
      
      // Másoljuk a right[] maradék elemeit, ha vannak.
      while j <= n2
          arr[k] <- right[j]
          j <- j + 1
          k <- k + 1
      end while
  end algoritmus
  ```