\documentclass[12pt]{amsart}
\usepackage{boxedminipage}
\input{defalgo.tex}
\usepackage{program}
\usepackage{epsf}
\input{defcode}

\title{Aula de 31/08}

\def\ii{\'{\i}}
\def\quen{q\"u\^en}
\author{Raul H.C. Lopes}

\begin{document}

\maketitle

\section{O exerc\ii cio da prova}
A pesquisa no array deve ser realizada como uma pesquisa em um ret\^angulo
delimitado por: linha $i$ \`a linha $p$ e coluna $q$ \`a coluna $j$. Assumindo
que o array $S$ tem $m$ linhas e $n$ colunas, a invariante seria:
\[ 0\le i\le p \lt m \land 0\le q\le j\lt n \land x\in S.i..p.q..j\]

Esse ret\^angulo deve ser diminu\ii do por um loop cujas transi\c c\~oes
decrementam $j$ ou incrementam $i$:
\begin{itemize}
\item $i$ \'e incrementado quando $S.i.j\lt x$;
\item $j$ \'e decrementado quando $x\lt S.i.j$.
\end{itemize}

Complexidade: $O(m+n)$
\section{A ordena\c c\~ao proposta na aula}
\begin{itemize}
\item Invariante: no passo $i$ a se\quen cia est\'a ordenada, se considerarmos
os bits $0$ a $i-1$ de cada chave. Por exemplo, dada a se\quen cia 
\[ [9,8,5,4] \]
quando $i=3$ as chaves ordenadas pelos bits $0..2$ ficam  na ordem
\[ [8,9,4,5]\]
Nesse passo as chaves com bit $3$ igual a $0$ (4,5) s\~ao levadas para
a esquerda e as outras (8,9) s\~ao levadas para a direita. Ao
final desse passo a se\quen cia estar\'a ordenada.

\item Complexidade.

Ser\~ao executados $d$ passos onde $d$ \'e o n\'umero de bits dos itens a
ordenar. A separa\c c\~ao das chaves usar\'a a opera\c c\~ao \emph{sc}
para calcular o endere\c co de cada chave.


\end{itemize}

\bibliography{abbrev,analysis,formal,algorithms,program}

\bibliographystyle{amsplain}


\end{document}




