Hola necesito hacer lo siguiente:
RETO 1
1. Considerar el siguiente segmento de codigo:
void eliminar (vector L, int x)
{
int aux, p;
for (p=primero(L); p!=fin(L);)
{
aux=elemento (p,L);
if (aux==x)
borrar (p,L);
else p++;
}
}
Analizar la eciencia de la funcion eliminar si primero es O(1) y n, ele-
mento y borrar son O(n). >Como mejorarias esa eficiencia con un solo
cambio en el codigo?
Analizar la eficiencia de la funcion eliminar si primero, elemento y borrar
son O(1) y n es O(n). >Como mejorarias esa eciencia con un solo cambio
en el codigo?
Analizar la eficiencia de la funcion eliminar si todas las funciones son O(1).
>Puede en ese caso mejorarse la eciencia con un solo cambio en el codigo?
2. Ordenar la siguiente lista de funciones de acuerdo a la notacion O pn, n3 + 1, ( n4
n2+1), nlog2(n2), nlog2log2(n2), 3log2(n), 3n, 2100, n + 100
3. (a) Usando la notacion O, determinar la eciencia de la siguiente funcion (n es
una potencia de 2):
int septiembre08(bool existe)
{
int sum2=0; int k,j,n;
if (existe)
for(k=1; k<=n; k*=2)
for(j=1; j<=k; j++)
sum2++;
else
for(k=1; k<=n; k*=2)
for(j=1; j<=n; j++)
sum2++;
return sum2;
}
El 2 más o menos lo sé, el problema son el 1 y el 3... si me pudieseis ayudar os lo agradecería muchísimo. Un saludo y gracias de antemano