complejidad logaritmica ( java 2)

4
2. Calcula la complejidad de los siguientes algoritmos: 2.1. i = 1 Mientras (i <= n) j = 1 Mientras (j <= n) j = j * 2 Fin _ mientras i = i + 1 Fin_Mientras Complejidad del algoritmo: Primero analizaremos la complejidad de cada uno de los bucles del código (consta de dos bucles: interno y externo): Bucle externo: Mediante la tabla siguiente observaremos los valores que toma “i” en cada iteración: Y notamos que el número de iteraciones es directamente proporcional al recorrido hasta n del bucle, entonces, tenemos una función de eficiencia f1(n) = n. Por lo tanto, la complejidad del bucle externo es O(f1(n))=n. Bucle interno: Mediante la tabla siguiente observaremos los valores que toma “j” en cada iteración: i i=i+1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 . . . . . . n-1 i=i n i=i+1

Upload: ximena-itzel-garcia-diaz

Post on 17-Nov-2015

15 views

Category:

Documents


1 download

DESCRIPTION

Java 2

TRANSCRIPT

  • 2. Calcula la complejidad de los siguientes algoritmos:

    2.1. i = 1

    Mientras (i

  • Ahora, notamos que el bucle se lleva a

    cabo 2 ITERACIONES =log2n porque en el bucle

    valor de i se dobla en cada iteracin, de este

    modo podemos determina una eficiencia

    f2(n)= log2n y una complejidad del bucle

    interno O(f2(n))= log2n

    Por lo tanto, como el cdigo es un bucle anidado, entonces la

    complejidad del cdigo es:

    O(n)=O(f1(n))* O(f2(n))=n*log2n= nlog2n.

    (Sabemos: log2n< n< nlog2n< n2)

    O(n)= nlog2n

    j j=j*2

    1 1

    2 2

    3 4

    4 8

    5 16

    6 32

    7 64

    8 128

    9 256

    10 512

    11 1024

    12 2048 . . .

    .

    .

    . n-1 j=(j-

    1)*2

    n j=j*2

  • 2.2. i = 1

    Mientras (i

  • Y notamos que el nmero de iteraciones es

    directamente proporcional al recorrido

    hasta 10 del bucle, entonces, tenemos una

    funcin de eficiencia constante f2(n) = 10.

    Por lo tanto, la complejidad del bucle

    externo es O(f2(n))=O(1)=1 por ser

    constante.

    Por lo tanto, como el cdigo es

    un bucle anidado, entonces la complejidad

    del cdigo es:

    O(n)=O(f1(n))* O(f2(n))=O(n2-1)*O(1)= n2*1=n2.

    O(n)=n2.

    j j=j+1

    1 1

    2 2

    3 3

    4 4

    5 5

    6 6

    7 7

    8 8

    9 9

    10 10