projeto de algoritmos com implementações em java e c++
DESCRIPTION
Autor: Nivio ZivianiTRANSCRIPT
Nivio Ziviani
com implementações em Java e C++
Projeto deAlgoritmosProjeto deAlgoritmos
Algoritmos e estruturas de dados formam o núcleo da ciência da computação, sendo os componentesbásicos de qualquer software. Aprender como programar computadores está intimamente ligado aalgoritmos, já que programas são formulações concretas de algoritmos. Aprendê-los é crucial paraqualquer pessoa que deseja desenvolver softwares de qualidade.
Esta obra apresenta os principais algoritmos e estruturas de dados conhecidos. As técnicas de projetode algoritmos são ensinadas de forma simples, seguindo o paradigma de orientação a objetos, pormeio de refinamentos sucessivos até o nível de uma implementação na linguagem Java, e todoprograma Java tem um programa C++ correspondente nos apêndices.
Destaques:
O livro cobre estruturas de dados básicas, contendo listas lineares, pilhas e filas; algoritmos deordenação e de pesquisa em memórias primária e secundária; algoritmos em grafos e processamentode cadeias de caracteres; técnicas de análise de algoritmos; paradigmas de projeto de algoritmos; eestudo da complexidade computacional de algoritmos.
Ênfase em tipos abstratos de dados, programação modular, programação orientada a objetos,encapsulamento e independência de implementação de tipos abstratos de dados com reaproveita-mento de código.
Informação sobre o comportamento teórico e prático dos algoritmos, fornecendo uma base decomparação entre os algoritmos.
Mais de 156 exercícios propostos dos quais 58 com soluções; 195 programas em Java e 195programas em C++; 164 figuras ilustrativas.
Material de apoio para professores na forma de transparências e os códigos em Java e C++podem ser obtidos no site .
Livro-texto para cursos de Ciência da Computação, Matemática Computacional, Sistemas de Infor-mação, Engenharias de Computação, de Controle e Automação, Elétrica, Eletrônica e Mecânica,entre outros. Pelo fato de apresentar muitas implementações de algoritmos práticos, o texto é igual-mente útil para profissionais engajados no desenvolvimento de software nas linguagens Java e C++.
�
�
�
�
�
www.dcc.ufmg.br/algoritmos-java
Aplicações
Outras Obras
Algoritmos e Lógica de Programação
Compiladores: Princípios e Práticas
Estrutura de Dados e
Algoritmos em C++
Introdução à Ciência da Computação
Introdução aos Fundamentos da
Computação
Modelos Clássicos de Computação
Projeto de Algoritmos: Com
Implementações em Pascal e C –
2 Edição Revista e Ampliada
Marco Antonio Furlan de Souza,Marcelo Marques Gomes,Marcio Vieira Soares eRicardo Concilio
Kenneth C. Louden
Adam Drozdek
Ricardo Daniel Fedeli,Enrico Giulio Franco Polloni eFernando Eduardo Peres
Newton José Vieira
Flávio Soares Corrêa da Silva eAna Cristina Vieira de Melo
Nivio Ziviani
a
Nivio Ziviani
Fabiano Cupertino Botelho
Ph.D. em Ciência da Computação, Univer-sity of Waterloo, 1982. Professor Eméritoda UFMG, Professor Titular do Departa-mento de Ciência da Computação daUFMG, onde coordena o Laboratório paraTratamento da Informação (LATIN). Co-fundador de duas empresas especializadasem tecnologia de busca na Web, a MinerTechnology Group, vendida para o UOL /Grupo Folha de São Paulo em 1999, e aAkwan Information Technologies,vendida para a Google Inc. em 2005.Autorde três livros na área de algoritmos e co-autor de mais de cem artigos técnicos nasáreas de algoritmos, recuperação de infor-mação, compressão de textos e áreas corre-latas. Co-criador da conferência SPIRE(String Processing and InformationRetrieval) e Coordenador Geral da confe-rênciaACM SIGIR 2005, a mais importan-te do mundo na área de recuperação de in-formação. Membro da ACM (Associationfor Computing Machinery), EATCS(European Association for TheoreticalComputer Science), IEEE ComputerSociety e SBC (Sociedade Brasileira deComputação).
Mestre em Ciência da Computação,Universidade Federal de Minas Gerais,2004.
Atualmente é aluno de doutorado do De-partamento de Ciência da Computação daUniversidade Federal de Minas Gerais,onde trabalha com funções hash perfeitasmínimas para representar eficientementeum dicionário. Desenvolvedor e mantene-dor de uma biblioteca de software livreintitulada CMPH, que contém todos osalgoritmos desenvolvidos durante o seudoutorado. Especialista em desenvolvi-mento de software orientado a objetos naslinguagens Java e C++.
Niv
ioZ
ivia
ni
Consultoria em Java e C++ de
Fabiano Cupertino Botelho
com
imp
lemen
tações
emJava
eC
++
Pro
jeto
de
Alg
orit
mo
sP
ro
jeto
de
Alg
orit
mo
s
com implementações em Java e C++
Projeto deAlgoritmosProjeto deAlgoritmos
Para suas soluções de curso e aprendizado,
visite www.cengage.com.br
Dados Internacionais de Catalogação na Publicação (CIP)(Câmara Brasileira do Livro, SP, Brasil)
Ziviani, Nivio Projeto de algoritmos : com implementações em Java e C++ / Nivio Ziviani ; consultoria em Java e C++ de Fabiano Cupertino Botelho - São Pau lo: Cengage Learning, 2011.
1. reimpr. da 1. ed. de 2007.
Bibliografia.ISBN 978-85-221-0821-3
1. Algoritmos de computadores 2. C++ (Linguagem de programação para computadores) 3. Dados - Estruturas (Ciência da computação) 4. Java (Linguagem de progra-mação para computadores) I. Botelho, Fabiano Cuperti-no. II. Título.
06-7021 CDD-005.1
Índice para catálogo sistemático:
1. Algoritmos: Programação de computadores: Implementação em Java e C++: Processamento de dados 005.1
Projeto de Algoritmos – Com implementações em Java e C++
Nivio Ziviani
Gerente Editorial: Patricia La Rosa
Editora de Desenvolvimento: Ligia Cosmo
Cantarelli
Supervisor de Produção Editorial: Fábio Gonçalves
Supervisora de Produção Gráfica: Fabiana Alencar
Albuquerque
Produtora Editorial: Renata Siqueira Campos
Copidesque: Mônica Cavalcante Di Giacomo
Revisão: Andréa Vidal
Composição: Nivio Ziviani e Fabiano Cupertino
Botelho
Capa: F.Z.Dáblio Design Studio
Impresso no Brasil.Printed in Brazil.1 2 3 4 10 09 08 07
© Cengage Learning Edições Ltda.
Todos os direitos reservados. Nenhuma parte deste livro po-derá ser reproduzida, sejam quais forem os meios empregados, sem a permissão, por escrito, da Editora.Aos infratores aplicam-se as sanções previstas nos artigos
, , 6 e da Lei no .6 , de de fevereiro de 8.
© Cengage Learning. Todos os direitos reservados.
ISBN- :
Cengage LearningCondomínio E-Business Park Rua Werner Siemens, – Prédio – Espaço Lapa de Baixo – CEP - – São Paulo – SP Tel.: ( ) 66 - – Fax: ( ) 66 -SAC: 8
Para suas soluções de curso e aprendizado, visitewww.cengage.com.br
Para informações sobre nossos produtos, entre em contato pelo telefone
Para permissão de uso de material desta obra, envie seu pedido para [email protected]
���������������� �����������������������������������
�������������������������������������������� �����������������������������������
�������������������������
���������������������������������������������� ��������!������"#$������������%
&'()(*+,-./
!�01����2�� ������������������� ���3�����#���������1��0��2��%� ��������3�������������� ���������������������� ������3�4�����3���������3����������5������������������������������4�������67���8������������������������������4�����������9����2�����:�����4�����������������������������������������4����3������;!�3�������������������<�������9������
��=������������5������������������4�������������<�>���� !��������������������������3���������������������3������3�������8������3���������4���5��������3�����?�3������������3��������������������������������8������������<�>��������������������3�������3����5�������������������������������������08����������������������������=������������5������������������0����������5�����3������� 6�������������������5������3���������������������������4���������3����5���@�����������A����������4��0����������������0������������ ������������������� ��3���������������3������������������������3��<��������5�������������������������B��������3�3��<����������������� �������� ��3����������<����� ����2�����������������4���5������������������������������������4������ �������1����CDEFGHIJEHIKCLKMNOKICPCMCOIQJKRCECDEFGHIOIQJKRCLKMNOKICPCMCJEHIKC�S4�������������������������������������������<���<T�������������������4�������������������������������� S����������=���T������5���4���������������4�����8�������3������U������������8���� <������������������������������4����� ����������������T���V��4������������������3�������8�������3������������������T���������<���������4�����������3���������5���
WXXX YZ[\][_] ab[ZXc[d
���������������������������������T���������������4�����8�������3�������S��=���T����3������4����������4������3��T����������0��������U ������5��������� ������4������ ���e������������������������������������������ S�����5������������������0�������<����������������4�����������S���A���������T�����4��������������������������������������U 3��<��������� ���<��������������������5e��������������������������������������������������������<������4������������������������������������������������������4����f�4�S���T���������4�����4������3�����������A�����������������������������3����������������������������A���������� g���������0�������������4����������������5e������������������4��������������������3����������A������ !�����������������������������������������������������������=9��������T����8������������������ ��������������������� ������ !������� ��A���T��������������������5e������������������9������������������������������������������0��A����A�����������3�3�������3����5��� �������������9���������0�����������5����48����������������3������������������������������<�>���� h������3���������������<�����������������������03�3�������3����5�������������48���������������������������U$��������������������<�����������������++��������������������05e����������!�����������������8�����������i��������������������<������0��������5�������4���<T�������������<�����������������������
������������3�������
j������i��2�0k���lCMJKCmHnoGKFEnpEqEDrIHPEsttuvCIREFHMCnwNOCMGCnxyFGHPEsttz
{|}'~/
�������� ����� ���������� ���� !�3��������������� �������3���� � � � � � � � � � � � � ���V h����� ����h���!4������� ��� � � � � � � � � � � � � � V��� ��������h�������A��5��������3���� � � � � � � � � � � ������ �������������!������������5e� � � � � � � � � � � � ������V �������������������!��������� � � � � � � � � � � � ����� h��������!�������!�3������ � � � � � � � � � � � � � � � � � � V���� $��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V������ ���3����5��S���������S48��� � � � � � � � � � � � � � � V�����V �������������������������3������$��� � � � � � V������ �<����5������$�����++ � � � � � � � � � � � � � � � � � �� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��
� ������������������������������� ��V�� 6��5�� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��V�V j���������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��V�V�� ����6����������j���������� � � � � � � � � � � � � � � ��V�V�V @���� ��g��j���������� � � � � � � � � � � � � � � � ��V�� !�3������h������������� � � � � � � � � � � � � � � � � � � � � � � � V�� ������������� � � � � � � � � � � � � � � � � � � � � � � � � � � �VV�� i������������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��V�� ���3����5�� ��¡����� � � � � � � � � � � � � � � � � � � � � � � � � � V�¢ !�3���������� � � � � � � � � � � � � � � � � � � � � � � � � � � � ¢VV� !�3������!���A������ � � � � � � � � � � � � � � � � � � � � � � � ¢� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ¢��A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ¢�
£ YZ[\][_] ab[ZXc[d
¤ ¥�����������¦����§������ ���� ?���?������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ������ 6���������5����?������������!����8� � � � � � � � �����V 6���������5����?������������������!��0j�<���������� � � � � � � � � � � � � � � � � � � � � � � ���V ����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ©V��V�� 6���������5������������������!����8� � � � � � � � ©���V�V 6���������5������������������������!��0j�<���������� � � � � � � � � � � � � � � � � � � � � � � ©���� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � © ����� 6���������5�����������������!����8� � � � � � � � � © ����V 6���������5�����������������������!��0j�<���������� � � � � � � � � � � � � � � � � � � � � � � ��� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���
ª «�������� ������ S�����5��6������ � � � � � � � � � � � � � � � � � � � � � � � � � � � �������� S�����5�����¬���5��� � � � � � � � � � � � � � � � � � � � � �������V S�����5�����6���5�� � � � � � � � � � � � � � � � � � � � � ��¢����� ¬������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� ����� @����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �V������ ®������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �V������ �������5��������������� � � � � � � � � � � � � � � � � �������¢ S�����5��������� � � � � � � � � � � � � � � � � � � � � � � � �����V S�����5���A������ � � � � � � � � � � � � � � � � � � � � � � � � � � ��V��V�� 6��������5��i����������� ����������� � � � � � � � � �����V�V 6���������5�����������¬���5�����¬4����5�� � � � � �����V�� ��������5e��������� � � � � � � � � � � � � � � � � � � � � �� ��V�� 6��������5������<���� � � � � � � � � � � � � � � � � � � � � � �����V�� @������A����� � � � � � � � � � � � � � � � � � � � � � � � ��V ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���
� ���°������±��²����������� �³���� �����¬�������� � � � � � � � � � � � � � � � � � � � � � � � � � � � �¢V��V �����i������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � �¢���� µ������������ � � � � � � � � � � � � � � � � � � � � � � � � � � �¢������ µ�����i���������������i������������ � � � � � � �¢�����V µ�����i����������������i������������� � � � � � � ���� ����� �3���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ©����� h��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ©����V �������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �©���� h���<����5���������¶·CNGKMm � � � � � � � � � � � � � � � � � � �©������ ��5e���h���<����5��� � � � � � � � � � � � � � � � � � � �©¢
¹ºc»ZX[ £X
����V ?������������ � � � � � � � � � � � � � � � � � � � � � � � �© ����� ������5������!4����� � � � � � � � � � � � � � � � � � � � � �©©����� ·CNGKMm���<���� � � � � � � � � � � � � � � � � � � � � � � � � V�� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V���A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V��
¼ ���°������±��²���½��������� ��³��� ��������������5�������������¬�������� � � � � � � � � � VV ����� ������� ����� � � � � � � � � � � � � � � � � � � � � � � � � VV©����V 6���������5�����¬���������3���5��� � � � � � � � � V�V��V !���¬��������6���A��� � � � � � � � � � � � � � � � � � � � � � � V����V�� ���¾�������!����?������ � � � � � � � � � � � � � � V�¢��� µ������������ � � � � � � � � � � � � � � � � � � � � � � � � � � V������� µ�����i� � � � � � � � � � � � � � � � � � � � � � � � � � � � V������V µ�����i? � � � � � � � � � � � � � � � � � � � � � � � � � � � V������� !����������������µ�����i? � � � � � � � � � � � � � � V������� ��������5e��������� � � � � � � � � � � � � � � � � � � � � V�© ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V�V�A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V�V
³ ������������¿����� �¼³¢�� ����5e�i���� � � � � � � � � � � � � � � � � � � � � � � � � � � � V� ¢�V Sh���!4������� ������<� � � � � � � � � � � � � � � � � � � � V¢V¢�V�� 6���������5����������������2���!�8��=����� � � � � V¢�¢�V�V 6���������5�����������?�����!�8��=����g����������!��0j�<��������� � � � � � � � � � � � � � � � � V¢�¢�V�� 6���������5�����������?�����!�8��=����g����!����8� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � V¢©¢�V�� ���3����h��������h�=6���������5e� � � � � � � � � V �¢�� i�������<������� � � � � � � � � � � � � � � � � � � � � � � � � V �¢���� �������5����!���� � � � � � � � � � � � � � � � � � � � � V �¢���V h������� ������������<��!�T����� � � � � � � � � � V ¢¢�� i����?��3�� � � � � � � � � � � � � � � � � � � � � � � � � � � � V ¢�� S�����5��h�����3��� � � � � � � � � � � � � � � � � � � � � � � � � � V©V¢�� ������������������������������ � � � � � � � � � � � � � � � � V©�¢�¢ µ��������������T���� � � � � � � � � � � � � � � � � � � � � � � � V©¢¢�¢�� !�3������������������S4����µ��������������T���� V© ¢�¢�V !�3������������� � � � � � � � � � � � � � � � � � � � � � � ���¢�¢�� !�3��������1��� � � � � � � � � � � � � � � � � � � � � � ���¢� �������������� � � � � � � � � � � � � � � � � � � � � � � � � � ���¢�© Sh���!4������� ���®����3��<� � � � � � � � � � � � � � � � � ��� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��¢�A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��¢
¨ ���������������À��������À��������� ¤�� �� ���������������� � � � � � � � � � � � � � � � � � � � � � � � � � �V�
£XX YZ[\][_] ab[ZXc[d
���� ���������A���� � � � � � � � � � � � � � � � � � � � � � � � �V� ���V ��������!���A����� � � � � � � � � � � � � � � � � � � � � ��� �V �������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��V �V�� ���@�g����������� � � � � � � � � � � � � � � � � � � ��V �V�V ����������h�A����?��3�3�� ����� � � � � � � � � ��� �V�� ����������®Á���g����������� � � � � � � � � � � ��� �V�� �������5����®Á���g����vÂJEN � � � � � � � � � � � � ��� �V�� �������h�A������������� � � � � � � � � � � � � � � � �� ���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �¢��A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �¢�
à ���Ä�����NPÅÀ��Æ����������������Æ��������� ¤³³©�� ���4����NP0�������� � � � � � � � � � � � � � � � � � � � � � � � �¢ ©���� !�3������ ��0 ����������� � � � � � � � � � � � � � � � � � �©���V !����NP0���������NP0 �<T��� � � � � � � � � � � � � � �
©�V ®��T�����!�3������!���A����� � � � � � � � � � � � � � � � � �©�©�V�� !�3�������A���������g����h������������� � � � � � �©�©�V�V ®��T�����������4����NP0��������� � � � � � � � � � �©�©�V�� !�3������!���A������������4����NP0�������� � � �©�
���i�4���3����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����A���T��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���������������À++
��À�ÆÇ����� ª��§�����������À++
��À�ÆÇ����� ª�³À�����������À++
��À�ÆÇ����¤ ª¤¤¦�����������À++
��À�ÆÇ����ª ªªÃ¥�����������À++
��À�ÆÇ����� ª¼�È�����������À++
��À�ÆÇ����¼ ªÃ¤¿�����������À++
��À�ÆÇ����³ �É�Ê�����������À++
��À�ÆÇ����¨ �¤�� �����������À++
��À�ÆÇ����à ���Ë �����������À++
���ÆÌ�����Í ���ÍÎ��Æ�����Æ���¥����Ç����½����������� �¼�À����������½À�� �óÎ����Ì�����§�Ä������Ï��� �ÃÃÐ�����Î������Ñ� ¼ÉÃ
Ò'(Ó}Ô~/
������������������������5������������3�������!������������0���������8�������3������������������������A�����5���������������3������������������������������������������������A���0��5e�����������������������T������������������<�����������3�������������S�����9�������3���������������������������2������������0��A��������������4����3������������������������<����������������������������5e�����3�����������������A����3�������9������������������3�8����������������������������������5��������3������
������5���!������������8�������3����������������3�����������3�����������5����48���������������������������������T�����������������5�������3�3��$����h������3����$����������3�����++�����������������=�������A������4��������������T������������������3�3�������������������ÕIHÖEJHPE×FmHIKJDHNRHDØDOFEDEMJCÙÚENEDÕCNRCFEo�
ÛÜÝÞßàáÜ
S����������������������������������2������������������5�������0��������������3����������������5������������������������������������������3��<������������������������������������4����NP0������������T����� S�����������3��������������T��������������3���������9��U�� ������������3�������������������������4��������������0��������������A��5��������3������������������������0�����������3����������3�3��$����
£XW YZ[\][_] ab[ZXc[d
V� ������3�������8�������3������U ���5�����������������3�����������������������������������¶�������������4����������������3����5�����¡�������3������3������3����������A�������� ������������4����U ������������������������ ��������������5�������������������U �������5���������5��������������������������������5������������������������5�������������������U ���������5��4�������������������5������<������������A�������� ������������������������������U�������������������4���������������������GCNGKMm��������GCNGKMm���<������� ������������������������������U �������� ����A������0����i�¢� !�3��������3��<�U ���������5���4�������<��������4�������3���������5��������3���� ����������<������������������� ��0����3��������T�������������������������3��<�� � ������������������������������U 4���A��������A�����������e��������������A�������3�3���������©� ���4����NP0��������U ����NP0���������NP0��<T���� ����<��0��5����������������������������3�������A����������������0���������������T�������3����������A�������������4���������A����0���8�������������<�����������������3��������A��������Ð����������Å��Ñ�� 6������������2��������������������A������4��������������������������4������������5e������������������!��������<�������3�����3��������������������4��������������������<����5e��
âãÝäåæäßÝçáßèéÜäéæêæëìÜ!���3�3�������3����5������2���������������5����������������������3������������������$������������3����$����������3�����++�������������� ������������2��A����������������4���������������4����������8�������3�������g������4����������������������������������������������������5e���������4���������� S���8������������������������������5e������5���4���5��<������A�������������4������������!�����3�������$�����++
�������3�����������������������������������3����5�������������48����!���3����5�������������48�������������48������������� ������������������������������4���������������������8���3���������������������������<������������5e��
YZ]í»îX[ £W
j�����������3���������3����������4������������4���������������3����5������������3����5�������������48�������<���0���������������������������=����������������5���������4������������������������������������������3�� ����A����������3��������������5�����������������������5��������������8����3�����������0������������������3��������������������������������������������������� ������������������������3�����3��������������5��� S����A���������3��������3��<�����2�����0��������������4������������������������������������3��������<���������������������������5���������������3��<��
ðÜèéÜñßççÜé
S������������������������������������2������������0��A���������3����5�����03����5����A���������<����5�������3����������������!�3��������������� ���� ò����������������������8�������������������3����5��¶��A����=�������������� �������3�3���������T�����������$�����++��������������������������2�5�����������������5�����e���������������������<��������2����������������g������0�������������������������4��U
❑!�3��������������� ���6��������������������i������0�������=�<������=������������5��������������������������¬�������6�<����5����������3���������������5������������!����5�����������������B��������¡�����������3�����������������������������5��� !������������������������03�3�������3����5��������������������$������������������4������������������5��ï����������3����������5��������0�������3������������������������������������
❑!�3��������������� ���66��������������������i������0�������=�<������=������������5��������������������������¬�������6�<����5����������3���������������5������������!����5�����������������B��������¡�����������3�����������������������������5������ ��3����������U ������5��ï����������3�������������5�������������������U ���5�������������5�����������������������������������3���������A������0����5���������� ����������������������U ��������� 4�����������<����5��������� ¶GCNGKMm� �������������U ��4�������0���������4���������������������������������5���A����������������������������U������������������A������������������i�
❑!�3��������������� ���666��������������������i������0�������=�<������=������������5�������������������������
£WX YZ[\][_] ab[ZXc[d
�¬�������6�<����5���������3�����������������������������5��������3����������U ����������4����������8��������������3�������������3�������8�������3���������3��������3��<�����4����NP0������������T�������3����������A���0����������������������������������
❑���8����!�������!�3���������������������������������� �����������=������������5���������3����������������������3����������U �������������������3�������������3�������8�������3���������3��������3��<�����4����NP0������������T�������3����������A��������������������������������0�������3���������������
S���������3�����������������������������������������04�����S�������������������������������������������<����������8��������������3����������������������������3�������8�������3�����������2���������������������������4����� ����������T���V�������������3��� ������5���<��������������������������������8��������5��������¡����������������3�������!��������������T���������T���A���T������!�=�����1���������������������������������������A���T�����������!�3��A���T��������������e����������������������������4�����4���������������������� S����A���T��������������e�������4������ ��������A�3��������������4��������������� ��������������2�������������4��������� !�����A���T���������������������2�������������4���������������������5�����������2�3���h��4�����������������T������������������������������������������������������<��=����������������������T����������� S�48��������5�������3�������<��=����4�4���3������4��������������������������������������������4�4���3������������������������<��=��������3����������������������������������T����A�������8������������=���������������
�����������������<���������������8����3������������A�������������������������<������������������=���������3��������<���0�����������4�5������������������������=�����������������A�������8���������������������������������=���������3���� !����0���=����������<������ÕHNJlRIKOJ�Õpó�������������8�����������0��������������������������3����¶rIHôNEI�����������������������ÕHNJlRIKOJ�����������������Õpó�!�������=������������4�����������������NKJE���������������5�>>>�����<�3�4�õ��3������08����
YZ]í»îX[ £WXX
ðÜöçÞåáæÝÞß
S�����������������������3���������������������������8�������3��������������� h������������������3���������������������������3��������������������������������4�������������������������<���������������������������3�����������T�������������������05��������������������������������<����5e��4�����������T�����������������������3�����������������!������������8�������3�����������������<�����������3�����������3�����������5����48����������������������������������������������<�2�����������������<T������������������<���������� !���������3�����=�<������������������������3�������8�������3������� �������� ���������������������������������������5���3������� ��������8��������������3��������������5�������0������������������������������������������������3���A����=���������3����5��������������� ������������ �������������������3�����������������4���4���������������������������������������8�������������!�������������������02����������������������������T�����������������A�3���������
�������������������������������������������� !�3�����������A����������������������������������������������������������������
ðÜèéÜ÷ççãÜÝæø�����A���������4��������2�������������������3����������8�������<������������������������������������ ����������5e�����3����������������3����� !�����������3����������������3������������������������������5e��4������������5����������������3�����A����������������4�������������������������������������������5e�������������A��������������������������������������3���������������������������������S��3���������������������������������������������3�3��$�����++ �������5e������������������������������������5�����A��������A��5���S����3���$�����++ ��������4�����������������NKJE���������������5�ôôôùPRRùyúDmùrIûCFmHIKJDHNüÖCýC���������������$�����++
8��=������������������3������������� ����������A������������������������������
ðäéæáßþãêßÝÞÜç�������3������3�������4T�������������������������e���������������3���9����������� !3����5�����������8���������T��0
£WXXX YZ[\][_] ab[ZXc[d
����������������������!�4����®�����������?�������!��B���!�<����?�������i�������j�4����0 ���� ������������������ ������� �����$�����������?����������j��ÿ����������4��®��������������� ��3����S�������� ������������������i��4������2��� �������$�����������������$�� �3�4������µ��4��$����������!�������?��T���¬���������������?����h���������������?�2�������!4��!�4������������?�2i������������������2�i�3��������T���!��B����������?���������¬�������������S�����¬��3�������������������j�3���®�����i�0����4����j�����!�������������������j�4������¬����i�3�����j�4��������������������¬�2��j�¡�3������������j���h������ ��3����!3����������!�������f�3��������$�� �f�3���h���������=��S���4���������2���8��������4������������i�����������������0���������3�������$��������������������<���������2����� !����������3�����������������4�������������5�����5���4��@������A���������������5��������5�������5�������3�����4��������������A������4�����������������A���T����!j������i��2�0k��� �3����5��3���������������T����4����0����3�������8�������3����������A������������5������������ g��3������������������ ����i���!3�� �����B��j�4������¬����i�3��������3��e��4������3���������3�3��$�����++� ����<���������������������4����3��������3����5������0����������!��B���?2�����������h�����������������6����������?�����!���������e����������<���������2��������4������A�������
��������4���5����������0��A���� ���������������=������������5����g����������������� ������������ S���������3����5�����03����5��������4T����3��������������������3����� ��������������������!�3��������������� ���66�!�3��������������� ���666����8����!�������!�3��������3����5����������������i���!3�������B���������¬����i����������j�������������¬����!���������� ��������� �����h�������������������¬�������������4������������i���������4�T���i����������¬�2��®��������������j�4�����6������j����������������������������������� ����j�����������0���¬��������j�4����������������j����3�?�������������¬��3��!3��µ����������h����������j���!������������03����5�������A������������4���5�������4�����3����������������������������!�������������������������i��� ��!4������i��� ���2���������������!����������������������A���¬����������������3�������j�4�����������h��A�������A������������2�¬�������?�3����!�����¬�2�������� �����!��98���������0��������������������¬�������j�����i��4���f���� ���������g��3��0����������������������3�����������U ������S�����!���������������5���������?�h�7���������������3����������<������5��������
YZ]í»îX[ £X£
���A������������3��������������5�����5���4��GCNGKMm���<����� ��������������¬��������������A����������3������$�����++� �������0���j��������������������������3��������������5���������� $���������������������������5��������5�������5�������3�����4��������������A���?�������®����������������������������������� �h����������j����������4�����������������A���T����������������3����������������������������������e��3��0��5��!�������$�������������!�����������¬�����!�T�������
?�������i��������$9����� �������4��®������� �����f�����i��������h�����!�4��3�������4������!����������������������������@�������0���������������������5��®�����!��8����� ��3������ 6�����!���$��?�!������1=�����S������������1�������?������������ �����j�����?�$����� �2��2������!��B������������������������!��0���i������������������!�������¬�2��������������4���������������4�� ����j����i��3������� ��������e�������������������<������������������!��A������������ �������������T�����S��������¬�����?9�����¬�����S������j����3���¬����������3����5�������������������������4������ ��"������� ��������� ��������0����������T����h������3�����������"����������������������8��������������3�������8���U � ��õ�h06 �Sõ�������"���=�����j��0����5����6�<����5���� ��������������� �����V� ¢õ�V0��i����������"!�4���������j������5����6�<����5����fff�������� ���V��©��õ©�0 �h��4���������h���������������2��� ���������������������<�������������<������5������A�����������������������������������������������3������������������������
����ÿ������vEFH·HIKqHMJExyFGHPEsttz
££ YZ[\][_] ab[ZXc[d
èéßñ�þãÜáÜÛÜÝçåøÞÜé�æ�æßÛ++
��������A�������3�������3���3����5������������������8����!�������!�3������� ����� <��������������4�������9����������������A���������������������������������3�������������������������������������������3���������8������ �������������������������������2�������������3�������<�������������<�5������������������������<��� ����ÿ�������������4��������������������� S4��3���� ��������������������� �����������5e�����3���������������������$���������02�����4���5��������3���<���� ����������� ��������� <����������������5e�������������������������������������3��������������0��� ������������3����5����<��������������5��������5��������<��������������4������8��������������5e�����������������������������3����<���������������S����3���$�����++ <������������<��������3���� ���������T���� ����A��������$��������������������4���������length������2���������������������������������������������������������������������� ��������� ������� ��������T��������A������++�������������������������������������������$�����������������¬���������T�����������3��������3�����������$����!��������������5e��������<���������������������������������������
���������������� �������������� �������� ��4�������� �������3����++ ��������������=�����<���������������������������A�����T������������������3���$������������=������������������3����������������������������������������������������<��������������������3����++ ��������������5��<����������������������3���$�����3���������3������� ï�����<��T��������������������� ����4���������������2�5���������4����� ����������3���������3�������ï���������������$���T�������������������������������������������4��������������������h��4��3���������3������������<�������� ��T��!����!�������������������������������2��������������3��������������������$��?�i��3���������������=�����������<����5�������������� ����ÿ�����������������������������3�������������������������<��������������5���
��4������������i������vEFH·HIKqHMJExyFGHPEsttz
���� ���*+'/�{-./
��� ������������������� �!"# !��"$���� � �S��3������<�2������������0�0����������!����5e����������������������������5e��������������������������������������������3� �A���������3������� g���3���������� �� ������������=�������5e��A�������������4���5��������5��������������������������4����� ¬�3��� �8���¶�©¢������������������������������5����������������������������A�����������������8�����������5e�� !��A�������������5��a + b �����4��������������������������������������5���8������2���������������<��������a �b�¥�������������������3�����������������������3���� ��������������������������������������3�������������������������������%����������������3����������������������5��������0���������� ���������������4�����������������������4���5����������������3������������������5��������8����������������0��������5������� !�3������������������<�����������������������!�����%�����Æ��������������������������������������<���0������������5e�����������2����4�������� ��������������5�������5��� �����������9�������4�����������5��������<�������������4������������� �������������5�������5���4������������ $�����������5������T3�����������������3�����������������������������������������2�������������������5�����������������������������5����3������9������������<��������������5������T3������������������������T���4�����������������������5���������T3�������3������4������������������������������3������� ����������f����¶�©¢����&'' �Æ����������<�����5e�������������3������
( YZ[\][_] ab[ZXc[d
�4������ 4����� �����������5e� ������� ����T��� ������� �����������������3�������������������������������3����������2��������3��������������������������������������������2���3�����3���������3�3����������� ������������������=����������5e��4������0���<���������������������������4�����������������������3�3���������������<�������������<������3����������������¬�3��� �8���¶�©¢�������3�3�������3����5������������������5���������3���������������5�������������T��������������A�������������T�����3��T�0���������������A��5����������������3��������������������
��) *�+��!"# !��"*�+���,��� ���!"# !�������3�3�������3����5����������������������������������������A0���e��<�5e�������������������������T������������������Æ����������������������������2������8��������������������������������� ���������������������������� ��A������ ����������3����������<�5��¶f������©¢�����0���h��� ����������� ��3����������� ������T���� ���������4���� KMJn rHHFECMn RGCI�-HCJ��$���� ����A������ ���������� ������rHHFECM�������������������������������<��������������������
S��������������3���� ������������5������������������3��3�������������������<������� !���3�3��$����<�������3�������������������������������������������¬�5������g���Æ��Ä���������������������������������������������������������������5e� ������� �4���������� S���8����� �����0��������������������5e������5���4���5������������5��<������A�������������4������������!���®�����<��g�����¶�© � ����2���A����������������4���������������4����������8�������3�������
�����������������5������3�������������3�3�������3����5������T����A�3��������������3��<����������������������4���������������������������������������������������������3�3�������������!���������5���������������������������������4�����������������2��������������������������h����4������������������ ����������3�������2�5e�����������������������������<��������������������3�������2�5e��������5e������������� �������5��� 4���5������������5��� �����������������������������������������������������3�������������4������������������������������������������� ������������5�������������������5e���������4������������������2���
����9�����5�������3�����
./01234Z[_º56[ 7�����A������ ����������������5��������2����������������������T���������������4�����������?���������3���������5e��4�������U�� <�5��������2���V� �4�������������������������������������������2��������������������� ����������������������A�����������5e�����������������������������������0��5������������������� g����T��� ����������5������������4�����������?�������������������������8�� !�3��� ���������5���������4����������������������������������������������3�3�������03����5����������� ¬��A��������������������������������5���������4�������������������5������������ï�����������������������0����������������������3����4�����������������8�����<�������������5e������������40�������������<���������������������8����������5e������4����������������������g��<������2���������������������������������������5���������<����������������5e�����������2����4��
��������
��8 9"!�! !�*"�+�!"�:";�<=�!"��$���� � S���8�������3�������<��������������������������������������0������ ����������4������������������e������8����������2�������3�������������������������������������� ���������������08����������������������5e�����3���������������2�������������������������A��5������5�����������������5e���������������������3��������������������������������������������0���������2�5�����������3��<������T��������4�4������������������ �����������������3��������A����������������4����4����0���������<����������1���¶�©¢�U
¶� ��������������������Æ���������� @�� ����������������3���������������������4��������T���; ���������������T������0������������3�������������������� ������3���� ����������<�20������������9��������2����������������3�������������A��������3��������������������������������������¶�� �������������������������������@������3������������������T������������������4�������������; �������������<��T�������3���������������������4��������T����������3��������48���������������������8����������T���� 6��3������������ ������������
> YZ[\][_] ab[ZXc[d
������A���������������������3�����������������ï����� ����A���������T��� ��������9�����T�������������5e��������������������M�9��������������������5e� ������ ���<����������������������T�����@��������3������������������������T��� ��������������04���������������������� �����������������5��� �����������������������������������������������4�����!���������������������3��������3�� ������������T���� �������������� ������ �����3�������²����������������������������������������5e�������A�����������3����������������������
���4����������������������������������� ¬�����������������������������<��������3���������������T����������0������������������������������������4������������S���������2�5�������3���������������������������������
g�����������������A��5�������3��������������������� �������������A��5�������������������� !��������������4��������<������4������������������������8�����������3�������2����!����������48�5e���U ¶� ���������������������������������������<����������3�������5e�������������������� ¶�� ������������������GCIPôCIE�¶��� �����3�����������������������������2�0����������������������������������������!���������������i��2�0k���¶�©©���� ¢ �����������3������<��������4����������������������������3�����5e����������������A������������A�����������3��������������������������������������4�������������������A��5���������������������3�����2�� !���������0��������������������������5e����������������������������������5����������������A�5������3������������g��<�������������������������������2�5�������3������������������������������������4�����������������������02��������A�����������������67����������1���¶�©� �S���8����������5e�������A����������������������������������������������A��5�������������5���������������3�������������3���������5e�������������������������������5e�����3����������S�8��������3��������������5��������������9�������������5e��������������������8����������������3������������5e������������������4�5����������5e���T����������A���������������������A��5�������3�������������������<�5�������������������Æ��������f �����f(n)
�����������������0�����������A��������3��������������4�������������n� ¬�3����¬��������!������ ¶�©¢¢��f(n)�����������������������������0�����������A��������3������������4�������������n� �����f��������<�5�������Æ�������������Æ�����3������� ¬�f(n)
������������������������������������������A��������3����������0�����n������f
��������<�5��������������������������3�������
./01234Z[_º56[ ?!���������8�����<��=�����A��T�����f ����������<�5����������A�0��������������������<������ò��������������������������A���������������������������������������������������������9��������2�������������������5�����������������������A�������������������3������������� �����������3��������������������������������������������������v [0..n − 1], n ≥ 1� ��������������$���@����<����������������3�������� ¬�8�f ��<�5����������A����������f(n)
���9�������������5e�����������������v ��v ��������n���������?�3��f(n) = n− 1, para n > 0.
��������������3���������������������3��������²�����
ABCDBEFEGHGIJKLMNOPLQRMRLSOTMLPUVNPLWTXPYLZ[XZOL\]_]abcdef\ghij i]kklcmn\ghij ko]oj jpoqcmrjpostu v jpowx njpoqcmystzuf{|} rjpo ~ yef ~ �wf ~��xj{ rqcm�st~uxqcmyst~uf}aog}pqcmf���������U@�������3���������������������������������������8������n ���������n ≥ 1�<�2��������n− 1 �������5e�����Ñ�U �����������������������������5e�� ���������n − 1��������������������3�������������� ?�3�n − 1 �������5e������������2S�������������������2��� ���9�������������5e�<������2�������������������������������max
������Max�������
!��������������A��5�������3���������������������������������������������������� ��� ��� �����������������������A��5��������3����������<�5��������������������������������������3���3��������������A��5�����<�5��������������������������� ��������������������������� ������������max�����3�����������3��������������������������������<�����4����������4�������������n� $��������3��������������5�������������U ���������������8�����������������������������3������������������4�������������������������������������������������������������� ¡��¡��¢£������������¤�� ������¢�� ¡¥���� �£¦ §��������� ©ª�«¬¬
® YZ[\][_] ab[ZXc[d
h���������������3����=�������U���������������������������S���%�������������������������������A��5���4���������T�������������������n� SÆ��������������������������������A��5���4�����������������������n� ¬� f
���<�5����������A�����4����������������������� ���������������������3��������������������f(n)�S��������¶����������� ����������ï���������������A�0�5�������������������������n� �������������������� ��������Ä�������Æ��Ä�Ä���������4������8���������������������n
������������������4�������4����������4�5����������2���������������������3������������������<T������4���������������������������������ò��������������4�5�������4�4�������������������������T������3������������������������������������������������������������������������������������3����������������������������������������2�����������������������������������������4������������������������������� ������3�������������%�Ñ�9����� �������2�����������������3������������� ���������������������4������������������2�����3����������������������S��3������������������������A�������<�2��Æ��°������°°������� ����3�������A��������3�������������������������������������������3�������������8����������������������������������������������������¬�8�f ��<�5����������A�������� ��f(n)
���9��������3��������������������� ����� ��9��������2��������������������������������������������3�����S���������������U
melhor caso : f(n) = 1pior caso : f(n) = ncaso medio : f(n) = (n + 1)/2
S�����������������������3������������������������������� S���������������������3��������������9���������������������������������������������������������������2��n �������5e��������������������������������������������������������3���������A��������������������������� ¬�pi
<������4�4���0���������i0������3�����8�������������������������������������i0������3��������������i �������5e��������f(n) = 1× p1 + 2× p2 + 3× p3 + · · ·+ n× pn.
�����������f(n)4�����������������4�5�������4�4�������pi� ¬�������3�����������������4�4����������������������������������
pi = 1/n, 0 ≤ i < n� �����U
f(n) =1
n(1 + 2 + 3 + · · ·+ n) =
1
n
(
n(n + 1)
2
)
=n + 1
2·
./01234Z[_º56[ ±!��������������������������5�������������������������������A���������A��������������������3����������������������������4�����������������������������������������������������v [0..n−1], n ≥ 1�g���3���������������������������4����������������������3���������������������3�����������<����������������3������V� S�����maxMin
�������������������������maxMin1
�����2��������������������5e��������������������������������v ���������������� ¬�8�f ��<�5����������A����������f(n)��
�9�������������5e�����������������v ��v ��������n ���������?�3��f(n) = 2(n− 1), para n > 0,
���������������������������������
ABCDBEFEGH²³PQJTPTZORµLWNMTORQRMRLSOTMLPUVNPLTLP¶ZNPL\]_]abcdef\ghij i]kklcml~wen\ghij ko]oj jpo tu qcml~werjpostu v jpowx njpoqcmystzuv q~wystzuf{|} rjpo ~ yef ~ �wf ~��xnj{ rst~u ·qcmxqcmyst~ufj{ rst~u �q~wxq~wyst~uf�jpoqcml~wtu ypa jpot¹ufqcml~wtzu yqcmfqcml~wteu yq~wf}aog}pqcml~wf��
S���3������V������<�������������������i����4�����������0����5�� v [i] < min �������������������������������������5��v [i] > max
�<����g���������������3���������������������3������������������������5�������������������Umelhor caso : f(n) = n− 1pior caso : f(n) = 2(n− 1)caso medio : f(n) = 3n/2− 3/2
S�������������������������������v �������������������� S�����������������������������v ���������������������� ����������v [i]����������max �����������2��?�3��
f(n) = n− 1 +n− 1
2=
3n
2− 3
2, para n > 0.
º YZ[\][_] ab[ZXc[d
ABCDBEFEGH»³PQJTPTZORµLPTJ¼LMRWRQRMRLSOTMLPUVNPLTLP¶ZNPL\]_]abcdef\ghij i]kklcml~w¹n\ghij ko]oj jpo tu qcml~w¹rjpostu v jpowx njpoqcmystzuv q~wystzuf{|} rjpo ~ yef ~ �wf ~��xnj{ rst~u ·qcmxqcmyst~ufaika j{ rst~u �q~wxq~wyst~uf�jpoqcml~wtu ypa jpot¹ufqcml~wtzu yqcmfqcml~wteu yq~wf}aog}pqcml~wf��
�������������9�������������5e� �����2���� �A�������4����������4������3���������������������������4����; !��������������������3������3������U� ������������������v ���������������0������4���8�������������������������������5����������������������4���8���������������������<���������������3�������������dn/2e½�������5e��V S��A�����4������4���8����������������������������������dn/2e − 1 �������5e��� S�T������4������4���8����������������������������������dn/2e − 1 �������5e��
��
�
��
�
�
�
Contém o máximo
Contém o mínimo
e e e · · ·
· · ·
e
e e e e
¾¿DÀBEGHGÁRMON µLWTv TPWLNÂÂXSYLZ[XZOLÂÃ!����������5������3������������������������������������������03��������ÄÅÆ¢�©ª� d e Ç�¤�¡���� Æ¢�©ª����ÈÉ � x Ç¢¡�Ê¡ ��� �� Ë¢��Ë¢ �� �£ª� dxe���� ����� ��¡ �����£ ���¡�����¢��¢���x¬Ì�¡ �¡�Æ��¡���Æ¢�©ª�b c Ç�¤�¡���� Æ¢�©ª����ÈÉ bxc ���� ����� ��¡������£ ���¡ ����¢��¢���x¬ e = 2, 71828 . . . �£ª�
dee = 3�bec = 2�d−ee = −2�b−ec = −3¬
Nivio Ziviani
com implementações em Java e C++
Projeto deAlgoritmosProjeto deAlgoritmos
Algoritmos e estruturas de dados formam o núcleo da ciência da computação, sendo os componentesbásicos de qualquer software. Aprender como programar computadores está intimamente ligado aalgoritmos, já que programas são formulações concretas de algoritmos. Aprendê-los é crucial paraqualquer pessoa que deseja desenvolver softwares de qualidade.
Esta obra apresenta os principais algoritmos e estruturas de dados conhecidos. As técnicas de projetode algoritmos são ensinadas de forma simples, seguindo o paradigma de orientação a objetos, pormeio de refinamentos sucessivos até o nível de uma implementação na linguagem Java, e todoprograma Java tem um programa C++ correspondente nos apêndices.
Destaques:
O livro cobre estruturas de dados básicas, contendo listas lineares, pilhas e filas; algoritmos deordenação e de pesquisa em memórias primária e secundária; algoritmos em grafos e processamentode cadeias de caracteres; técnicas de análise de algoritmos; paradigmas de projeto de algoritmos; eestudo da complexidade computacional de algoritmos.
Ênfase em tipos abstratos de dados, programação modular, programação orientada a objetos,encapsulamento e independência de implementação de tipos abstratos de dados com reaproveita-mento de código.
Informação sobre o comportamento teórico e prático dos algoritmos, fornecendo uma base decomparação entre os algoritmos.
Mais de 156 exercícios propostos dos quais 58 com soluções; 195 programas em Java e 195programas em C++; 164 figuras ilustrativas.
Material de apoio para professores na forma de transparências e os códigos em Java e C++podem ser obtidos no site .
Livro-texto para cursos de Ciência da Computação, Matemática Computacional, Sistemas de Infor-mação, Engenharias de Computação, de Controle e Automação, Elétrica, Eletrônica e Mecânica,entre outros. Pelo fato de apresentar muitas implementações de algoritmos práticos, o texto é igual-mente útil para profissionais engajados no desenvolvimento de software nas linguagens Java e C++.
�
�
�
�
�
www.dcc.ufmg.br/algoritmos-java
Aplicações
Outras Obras
Algoritmos e Lógica de Programação
Compiladores: Princípios e Práticas
Estrutura de Dados e
Algoritmos em C++
Introdução à Ciência da Computação
Introdução aos Fundamentos da
Computação
Modelos Clássicos de Computação
Projeto de Algoritmos: Com
Implementações em Pascal e C –
2 Edição Revista e Ampliada
Marco Antonio Furlan de Souza,Marcelo Marques Gomes,Marcio Vieira Soares eRicardo Concilio
Kenneth C. Louden
Adam Drozdek
Ricardo Daniel Fedeli,Enrico Giulio Franco Polloni eFernando Eduardo Peres
Newton José Vieira
Flávio Soares Corrêa da Silva eAna Cristina Vieira de Melo
Nivio Ziviani
a
Nivio Ziviani
Fabiano Cupertino Botelho
Ph.D. em Ciência da Computação, Univer-sity of Waterloo, 1982. Professor Eméritoda UFMG, Professor Titular do Departa-mento de Ciência da Computação daUFMG, onde coordena o Laboratório paraTratamento da Informação (LATIN). Co-fundador de duas empresas especializadasem tecnologia de busca na Web, a MinerTechnology Group, vendida para o UOL /Grupo Folha de São Paulo em 1999, e aAkwan Information Technologies,vendida para a Google Inc. em 2005.Autorde três livros na área de algoritmos e co-autor de mais de cem artigos técnicos nasáreas de algoritmos, recuperação de infor-mação, compressão de textos e áreas corre-latas. Co-criador da conferência SPIRE(String Processing and InformationRetrieval) e Coordenador Geral da confe-rênciaACM SIGIR 2005, a mais importan-te do mundo na área de recuperação de in-formação. Membro da ACM (Associationfor Computing Machinery), EATCS(European Association for TheoreticalComputer Science), IEEE ComputerSociety e SBC (Sociedade Brasileira deComputação).
Mestre em Ciência da Computação,Universidade Federal de Minas Gerais,2004.
Atualmente é aluno de doutorado do De-partamento de Ciência da Computação daUniversidade Federal de Minas Gerais,onde trabalha com funções hash perfeitasmínimas para representar eficientementeum dicionário. Desenvolvedor e mantene-dor de uma biblioteca de software livreintitulada CMPH, que contém todos osalgoritmos desenvolvidos durante o seudoutorado. Especialista em desenvolvi-mento de software orientado a objetos naslinguagens Java e C++.
Niv
ioZ
ivia
ni
Consultoria em Java e C++ de
Fabiano Cupertino Botelho
com
imp
lemen
tações
emJava
eC
++
Pro
jeto
de
Alg
orit
mo
sP
ro
jeto
de
Alg
orit
mo
s
com implementações em Java e C++
Projeto deAlgoritmosProjeto deAlgoritmos
Para suas soluções de curso e aprendizado,
visite www.cengage.com.br