Perguntas com a marcação «algorithms»

11
Gerando chaves de classificação ao reordenar itens

Temos vários itens que o usuário final poderá organizar em um pedido desejado. O conjunto de itens não é ordenado, mas cada item contém uma chave de classificação que pode ser modificada. Estamos procurando um algoritmo que permita gerar uma nova chave de classificação para um item que é...

11
Maneira simples e limpa de comparar três números

Eu tenho algum código que tem uma sequência de ifs que funciona, mas me sinto confuso. Basicamente, quero escolher o maior de três números inteiros e definir um sinalizador de status para dizer qual foi escolhido. Meu código atual é assim: a = countAs(); b = countBs(); c = countCs(); if (a > b...

11
Indexação rápida de combinações k

Estou revisitando um problema antigo em que estava trabalhando há algum tempo. Um cenário típico é "3 bits são definidos em um número inteiro de 8 bits", ou seja, 00000111. Todas as combinações exclusivas com 3 bits definidos podem ser facilmente geradas (em ordem) por loops aninhados. O que me...

10
Prefere algoritmos a loops escritos à mão?

Qual das seguintes opções você acha mais legível? O loop escrito à mão: for (std::vector<Foo>::const_iterator it = vec.begin(); it != vec.end(); ++it) { bar.process(*it); } Ou a chamada do algoritmo: #include <algorithm> #include <functional> std::for_each(vec.begin(),...

10
O que faz com que um caso ruim seja resolvido rapidamente?

Estou aprendendo sobre o quicksort e quero ilustrar matrizes diferentes nas quais o quicksort teria dificuldade. O quicksort que eu tenho em mente não possui um embaralhamento aleatório inicial, faz 2 partições e não calcula a mediana. Pensei em três exemplos até agora: [1,2,3,4,5,6,7,8,9,10] -...

10
Combine duas strings, mas permita um grau de erro

Como posso combinar duas strings, mas ao mesmo tempo permitir que o número X de caracteres esteja incorreto na correspondência. O número de erros deve ser uma variável controlável. Embora o número X de caracteres não possa corresponder à sequência, deve haver um limite para o número de execuções...