Exercici 4 · Metodologia de la Programació UAB 2018
Tema: Apuntadors, arrays dinàmics i cost dels mètodes · Del examen Examen Segon Parcial Curs 2018-2019 (2018)
Enunciado
Exercici 4 (1 punt). Complexitat algorísmica d'elimina i buidaVector
a.
A partir del codi següent del mètode elimina de la classe Vector, determineu-ne l'ordre de complexitat algorísmica en el cas pitjor i justifiqueu la resposta:
bool Vector::elimina(int posicio)
{
bool resultat = false;
if ((posicio >= 0) && (posicio < m_nElements))
{
resultat = true;
for (int i = posicio; i < (m_nElements - 1); i++)
m_array[i] = m_array[i + 1];
m_nElements--;
if (m_nElements < (m_maxElements / 4))
{
if ((m_maxElements / 2) > TAMANY_MINIM)
{
m_maxElements /= 2;
int* aux = new int[m_maxElements];
for (int i = 0; i < m_nElements; i++)
aux[i] = m_array[i];
delete[] m_array;
m_array = aux;
}
}
}
return resultat;
}
b.
Fent ús del mètode elimina, s'implementa el mètode buidaVector següent:
bool Vector::buidaVector()
{
for (int i = 0; i < m_nElements; i++)
elimina(0);
}
Quin és l'ordre de complexitat algorísmica d'aquest nou mètode? Justifiqueu detalladament la resposta.

Solución
Según los criterios oficiales de corrección
a. Ordre de complexitat algorísmica en el cas pitjor del mètode elimina
Solución:
a. Justificació de la complexitat del mètode elimina
Solución: En el cas pitjor (posició 0), el bucle de desplaçament fa n - 1 iteracions (O(n)). Si a més cal reduir memòria, es copien els n elements restants (O(n)). Per tant, el cost total en el cas pitjor és lineal: O(n).
b. Ordre de complexitat algorísmica del mètode buidaVector
Solución:
b. Justificació detallada de la complexitat del mètode buidaVector
Solución: A cada pas s'incrementa i i es redueix m_nElements en 1 per elimina(0), de manera que el bucle fa aproximadament n/2 iteracions. Com que elimina(0) costa proporcionalment als elements restants (n - 2k), la suma total forma una progressió aritmètica proporcional a n², donant un cost quadràtic O(n²).
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.