maio
12
2006

Conjuntos em Python

Posted In: codes, docs, home, python by elm

Em uma das disciplinas que ministro, Algotimos e Estruturas de Dados III, consta o conteúdo de Teoria de Conjuntos aplicada em computação e Estruturas de Dados para Conjuntos. A primeira é a aplicação das teorias matemáticas de conjuntos nas linguagens de programação. O livro que utilizo [1] traz exemplos em Pascal. Pesquisando um pouco na internet encontrei exemplos em Python:

conj.py

A outra matéria trata sobre conjuntos disjuntos [2]. Segundo [3] “algumas aplicações envolvem o agrupamento de n elementos distintos em uma coleção de conjuntos disjuntos. Duas operações importantes são encontrar o conjunto a que pertence um dado elemento e unir dois conjuntos.” Em C é possível desenvolver estas estruturas de dados utilizando listas ou usando árvores. O código da versão em C usando listas é

conjuntos_disjuntos.c

Além disso, fiz uma pesquisa na internet para encontrar uma implementação em Python. Encontrei a classe Grouper [4]. Um exemplo do uso da classe é:

distset.py

Uma das aplicações dos conjuntos disjuntos é a determinação dos componentes conectados em um grafo não orientado.
A implementação deste algoritmo usando C e listas é:

connected_components.c

E a implementação usando Python:

connected_components.py

[1] http://www.temporeal.com.br/produtos.php?id=169855
[2] http://en.wikipedia.org/wiki/Disjoint-set_data_structure
[3] http://www.livrariasaraiva.com.br/produto/produto.dll/detalhe?pro_id=466688&ID=C8F434217D5051E1012260358
[4] http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/387776

2 Comments

Como você vê a evolução do python em cursos superiores no Brasil?

Olá Sérgio.
Olha, eu acho que anda meio “a passos de formiga” como diria minha avó :-)
Ainda depende bastante da boa vontade de professores que influenciam seus alunos a pesquisar sobre a linguagem.
Mas já tem alguams universidades que estão usando mais, como é possível ver nesse link:
http://www.pythonbrasil.com.br/moin.cgi/PerguntasFrequentes/SobrePython#head-b910aafcf2f34a3172337e9f43e92ab9bd1faaa4
Eu espero que continue crescendo porque é uma linguagem muito boa para aprendizado.

Something to say?

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.