All pastes #430666 Raw Edit

Untitled

public text v1 · immutable
·published 2007-04-09 04:35 UTC
rendered paste body
\begin{tabular*}{12 cm}{l r}
        static void enemySort(Tipito[] todasLasPersonas) & \\
        $\lbrace$ & \\
                \hspace{1em}int maximosEnemigos = 0; & O(1) \\
                \hspace{1em}int contador = 0; & O(1) \\
                \hspace{1em}cantOperaciones += 2; & O(1) \\ 
                \hspace{1em}while (contador < todasLasPersonas.length) & O(1) \\
                \hspace{1em}$\lbrace$ & \\
                        \hspace{3em}maximosEnemigos = maximo(todasLasPersonas, contador); & O(todasLasPersonas.length) \\
                        \hspace{3em}cantOperaciones++; & O(1) \\
                        \hspace{3em}if (maximosEnemigos != 0) & O(1) \\
                        \hspace{3em}$\lbrace$ & \\
                                \hspace{5em}arraySwap(todasLasPersonas, maximosEnemigos, contador);  & O(1) \\
                                \hspace{5em}cantOperaciones++; &  O(1) \\
                        \hspace{3em}$\rbrace$& \\ 
                        \hspace{3em}contador++; & O(1) \\ 
                        \hspace{3em}cantOperaciones+= 2; & O(1) \\
                \hspace{1em}$\rbrace$ & \\
        $\rbrace$ & \\
\end{tabular*}
\\ \\
Veamos que hay un solo while en la funcion, que comienza en 0 y llega hasta todasLasPersonas.length - 1, es decir, el ciclo se ejecuta tantas veces como elementos haya en todasLasPersonas.length. \\
Dentro del ciclo, todas las operaciones son constantes exceptuando maximo, que tiene orden O(todasLasPersonas.length). Dado que el cuerpo de la fucion es de orden O(todasLasPersonas.length) y se ejecuta todasLasPersonas.length veces, la funcion es de orden O(todasLasPersonas.length$^{2