Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
Complejidad de tiempo (Big-O) de fusionar dos PriorityQueues

Desde PriorityQueue Javadoc :

Nota de implementación: esta implementación proporciona tiempo O(log(n)) para poner en cola y sacar de la cola los métodos offer , poll , remove() y add ; tiempo lineal para los métodos remove(Object) y contains(Object) ; y tiempo constante para los métodos de recuperación peek , element y size .

Entonces, mi pregunta es, ¿se mantendría la complejidad del tiempo O(log(n)) para fusionar PriorityQueue s en uno? ¿O sería O(nlog(n)) considerando la inserción? ¿Y cambiaría esto si se fusionaran más montones?

Estos PriorityQueue s representan montones.

Algo como esto:

 PriortityQueue<Integer> a = new PriorityQueue<>(); ... add elements PriortityQueue<Integer> b = new PriorityQueue<>(); ... add elements PriorityQueue<Integer> merged = new PriorityQueue<>(a.size() + b.size(), a.comparator()); // Assuming a and b have the same Comparator. merged.addAll(a); merged.addAll(b);
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como ha señalado, el método add de la clase PriorityQueue tiene una complejidad de tiempo O(log(N)) . Si observa la implementación concreta del método addAll de la clase PriorityQueue , verá lo siguiente:

 public boolean addAll(Collection<? extends E> c) { if (c == null) throw new NullPointerException(); if (c == this) throw new IllegalArgumentException(); boolean modified = false; for (E e : c) if (add(e)) modified = true; return modified; }

Entonces, para cada elemento de la colección que se pasa como parámetro, se llama al método add . Por tanto, la complejidad final será O(Mlog(N)) , donde M es el número de elementos de la colección pasados como parámetro y N es el número de elementos de la cola de prioridad.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda