Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo Otimização

List sem repetição/duplicação? Use HASHSET!

Resultado da listagem Tem diferença! :) Mas como chegamos nisto? 1. Preparando listas para comparação Foram três. Todas com 32.767 registos. Uma totalmente sem repetições e com números sequenciais. Uma com poucas repetições (garantidas com números randômicos variando entre 1 e  32.767 / 2 :) e Uma com muitas repetições (também randômicos, entre 1 e 32.767  /  5) 2. Percorrendo e populando as novas listas  Como a classe List  não implementa validação de repetição, optamos por escolher o método mais usado (e aconselhável, principalmente onde trabalho :) que é o método Contains. if (!list.Contains(listaSemRepeticao[i]))                     list.Add(listaSemRepeticao[i]);  E na HashSet , inserção direta (porque ela já implementa a verificação de repetição). hash.Add(listaSemRepeticao[i]); E só! 3. Visualizando os resultados. Presentes na imagem acima. 4. Curiosidades ...

Delegate, FUNC e Action no C# com Fibonacci?

Vamos direto ao ponto: a melhor maneira de aprender a usar uma nova funcionalidade de sua linguagem de programação favorita é identificá-la em um uso do dia a dia. Vamos então utilizar um problema, identificar a situação ao qual o delegate  seria útil e vamos mostrar o uso para melhorar a qualidade do seu código. Existe um algorítimo que todo aspirante a programador tem que aprender para firmar o conhecimento no uso de iterações que é o algorítimo do Fatorial. Basicamente, o objetivo é descobrir qual seria o fatorial do número 3, por exemplo,  Fat3 = 3 * 2 * 1 = 6. Uma das formas de desenvolver isto no C#, em uma Console Application , é fazer um laço decremental sempre multiplicando o valor resultante pelo número que está no laço. Por exemplo: Mas existe uma outra forma também, que seria fazer um algorítimo recursivo. Mais ou menos como abaixo. O resultado neste caso não muda. O problema é se quisermos mostrar os dois resultados juntos. Olha como fic...

Contador fora do FOR?

Pequenas dicas do dia a dia para quem realmente gosta de programar. Se a sincera frase de um ator desconhecido que diz  "Honestidade em pequenas coisas nunca é uma coisa pequena" é verdade, então também venho a crer que qualidade de código em pequenos códigos nunca é tempo perdido. Veja uma situação simples que foge de 70% dos bons desenvolvedores: Suponhamos que você tenha que percorrer uma coleção de objetos que estão em um array . 1 var array = new string [arrayLength]; E precisa percorrê-lo. É claro que o primeiro código que te vem a cabeça é 1 for ( int i = 0 ; i < array.Length; i++) { /* qualquer coisa... */ } Não tem problema, na minha também, mas o que você não sabe é que pequenas atitudes mudam o mundo. No código acima, todas as vezes que o loop for executado você também executará uma chamada ao método ... 1 array.Length Agora, se puxarmos esta chamada para fora do laço, executaremos somente uma vez e todas as verifica...