Articles of algoritmo

Melhor algoritmo para detectar ciclos em um grafo direcionado

Qual é o algoritmo mais eficiente para detectar todos os ciclos dentro de um gráfico direcionado? Eu tenho um gráfico direcionado representando um cronograma de tarefas que precisam ser executadas, um trabalho sendo um nó e uma dependência sendo uma vantagem. Eu preciso para detectar o caso de erro de um ciclo dentro deste gráfico […]

Como determinar se um ponto está em um triângulo 2D?

Existe uma maneira fácil de determinar se um ponto está dentro de um triângulo? É 2D, não 3D.

Maneira mais rápida de achatar / desappend objects JSON nesteds

Eu joguei alguns códigos juntos para nivelar e não achatar objects JSON complexos / nesteds. Funciona, mas é um pouco lento (aciona o aviso de ‘script longo’). Para os nomes achatados eu quero “.” como o delimitador e [INDEX] para matrizes. Exemplos: un-flattened | flattened ————————— {foo:{bar:false}} => {“foo.bar”:false} {a:[{b:[“c”,”d”]}]} => {“a[0].b[0]”:”c”,”a[0].b[1]”:”d”} [1,[2,[3,4],5],6] => {“[0]”:1,”[1].[0]”:2,”[1].[1].[0]”:3,”[1].[1].[1]”:4,”[1].[2]”:5,”[2]”:6} […]

O que é otimização de chamada de cauda?

Muito simplesmente, o que é otimização de cauda? Mais especificamente, alguém pode mostrar alguns pequenos trechos de código onde ele poderia ser aplicado, e onde não, com uma explicação de por quê?

A maneira mais eficiente de implementar uma function de poder baseada em inteiro pow (int, int)

Qual é a maneira mais eficiente dada para elevar um inteiro à potência de outro inteiro em C? // 2^3 pow(2,3) == 8 // 5^5 pow(5,5) == 3125

Encontrar todas as combinações possíveis de números para alcançar uma determinada sum

Como você faria para testar todas as combinações possíveis de adições de um determinado conjunto de números, de modo que elas sumriam um determinado número final? Exemplo: Conjunto de números para adicionar: {1,5,22,15,0, …} Resultado desejado: 12345

Está usando Random e OrderBy um bom algoritmo de shuffle?

Eu li um artigo sobre vários algoritmos de shuffle no Coding Horror . Eu vi que em algum lugar as pessoas fizeram isso para embaralhar uma lista: var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next()); Este é um bom algoritmo random? Como isso funciona exatamente? É uma maneira aceitável de fazer isso?

Noções básicas sobre recursion

Estou tendo grandes dificuldades para entender a recursion na escola. Sempre que o professor está falando sobre isso, eu pareço entender, mas assim que eu tento sozinho, isso explode completamente meus cérebros. Eu estava tentando resolver Towers of Hanoi a noite toda e completamente explodi minha mente. Meu livro tem apenas cerca de 30 páginas […]

Como encontrar a complexidade do tempo de um algoritmo

A questão Como encontrar complexidade de tempo de um algoritmo? O que eu fiz antes de postar uma pergunta no SO? Eu passei por isso , este e muitos outros links Mas não onde eu era capaz de encontrar uma explicação clara e direta sobre como calcular a complexidade do tempo. O que eu sei […]

Números randoms exclusivos (não repetidos) em O (1)?

Eu gostaria de gerar números randoms únicos entre 0 e 1000 que nunca se repetem (ou seja, 6 não aparece duas vezes), mas isso não recorre a algo como uma pesquisa O (N) de valores anteriores para fazê-lo. Isso é possível?