void
GaleShapley::
-nesima_ronda() // O(N^2.log(N))
+nesima_ronda() // O(N^2)
{
// Todo el for es O(N^2)
for (personas_type::iterator ih = hombres.begin(); // O(N)
for (Persona::ofertas_type::iterator i // O(N)
= m.ofertas.begin();
i != m.ofertas.end(); ++i)
- (*i)->rechazos[(&m)->nombre] = &m;
+ (*i)->rechazos[(&m)->nombre] = &m;//O(1)
ph->rechazos[(&m)->nombre] = &m;
m.ofertas.clear(); // O(N)
void
GaleShapley::
-casamentear() // O(N^2.log(N))
+casamentear() // O(N^2)
{
- primera_ronda(); // O(N^2.log(N))
+ primera_ronda(); // O(N^2)
while (!todos_h_comprometidos()) // O(1)
- nesima_ronda(); // O(N^2.log(N))
+ nesima_ronda(); // O(N^2)
}