Anagramas
Publicado por Enzo de Brito Ferber 16/01/2009 (última atualização em 20/04/2015)
[ Hits: 23.603 ]
Homepage: http://www.maximasonorizacao.com.br
Download anagram.c (versão 2)
Programa que gera todos os anagramas possíveis com uma determinada string (todos os caracteres são aceitos).
O código do programa, assim como a maioria de seus comentários, está em inglês, mas acho que isso não será problema. Qualquer dúvida é só mandar um e-mail para mim. (o endereço está no cabeçalho do arquivo).
Happy programming!
Versão 2 - Enviado por Enzo de Brito Ferber em 16/04/2015
Changelog: O código antigo além de muito grande, não tinha uma boa performance.
Reduzi a função para gerar os anagramas a pouco menos de 20 linhas. Performance ótima e dentro do esperado O(n!), sem os desperdícios do código atual com inúmeras funções, máscaras e afins.
O algoritmo é recursivo (mas é simples):
1. Um loop através de toda a string.
2. A cada iteração do loop, o primeiro caractere da string será substituído pelo caractere i.
3. Chama-se a função novamente na substring (string original menos o primeiro caractere)
4. Ir para o passo 1.
Quando a função retorna, restaura-se o caractere trocado para que a próxima interação do loop seja feita corretamente.
O anagrama atual é armazenado em uma string global.
Código extenso.
Cálculo de Fatorial usando Loop
Agenda eletronica com banco de dados em arquivo texto
CPU e memória em C no GNU/Linux
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
OCS Inventory NG: Instalação de Agentes Linux e Windows + Autenticação HTTP
Quando vocês pararam de testar distros? (20)
O que houve com slackware ??? (8)
Removere linux-image-6... [RESOLVIDO] (2)









