Revisão - Loops Otimizados
Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 17 de 66.
Desafio
MédioVocê deve otimizar um algoritmo de busca que processa um grande conjunto de dados. Crie um método chamado OptimizeSearchAlgorithm que:
- Receba uma matriz irregular de inteiros (
int[][]) e um valor-alvo como parâmetros - Implemente quatro abordagens diferentes para encontrar o valor-alvo:
- Usando um loop for tradicional sem armazenar os comprimentos das matrizes em cache
- Usando um loop for com os comprimentos das matrizes armazenados em cache
- Usando um loop foreach com um contador
- Usando um método auxiliar para verificar se o valor corresponde ao valor-alvo
- Retorne o número total de correspondências encontradas usando a abordagem otimizada (com os comprimentos armazenados em cache)
O método deve demonstrar todas as técnicas de aprimoramento de loops abordadas neste capítulo.
Experimente você mesmo
public class OptimizeSearchAlgorithm
{
public static int optimizeSearchAlgorithm(int[][] data, int target)
{
// Escreva sua solução aqui
}
// Adicione quaisquer métodos auxiliares de que precisar
}Todas as lições de Lógica & Fluxo
1Matrizes Multidimensionais
Noções Básicas de Matrizes 2DDeclaração e Inicialização de Matrizes 2DAcesso aos Elementos de Matrizes 2DLoops Aninhados com Matrizes 2DMatrizes IrregularesOperações Comuns com MatrizesRevisão - Multidimensional4Técnicas de Controle de Fluxo
Retornos AntecipadosCláusulas de GuardaInstruções de Salto (goto)Break e ContinueSimplificando Condicionais Aninhadas7Operadores Lógicos Avançados
Avaliação de Curto-CircuitoOperadores Lógicos CondicionaisPrecedência de OperadoresRevisão - Operadores Avançados2Tomada de Decisões Avançada
Múltiplas CondiçõesLógica Booleana ComplexaComparação entre If e SwitchInstruções Switch AninhadasRevisão - Decisões Avançadas5Tratamento de Exceções
Noções básicas de Try-CatchTipos de ExceçãoMúltiplos blocos CatchTrabalhando com ArquivosBloco FinallyUsando Using vs. Try-FinallyExceções PersonalizadasRecapitulação - Tratamento de Erros3Aprimoramentos de Loops
Desempenho de LoopsIteração de Estruturas ComplexasCada Tipo de LoopRefatoração de LoopsRevisão - Loops Otimizados6Tratamento de Nulos
Fundamentos de Referências NulasTipos de Valor AnuláveisPadrões de Verificação de NulosProgramação DefensivaRecapitulação — Segurança contra NulosPratique por conta própria: Compilador de C# online