domingo, 6 de abril de 2014

Problema 24 - Permutações lexicográficas

Qual é a permutação lexicográfica (ie, "ordem alfabética") número 1 milhão do vetor (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)? É isso que o problema quer que respondamos. Considero, claro, que o próprio vetor inicial já seja sua primeira permutação. A segunda é (0, 1, 2, 3, 4, 5, 6, 7, 9, 8).

Escrevi um algoritmo que gera sempre a próxima permutação lexicográfica de um vetor trocando posições de elementos apropriados. Acho que vi na Wikipedia, mas não importa. O importante é entender o mecanismo. :o)

O problema é que, pelo menos em R, a resolução é lenta, foram 51,33 segundos na minha máquina. Deve haver alguma maneira mais inteligente de resolver o problema, ao invés de simplesmente gerar um milhão de permutações. Mas não creio que isso seja grave.

Nenhum comentário:

Postar um comentário