Riepilogo - Cicli ottimizzati
Fa parte della sezione Logica e flusso del percorso C# di Coddy. Lezione 17 di 66.
Sfida
MedioTi è stato assegnato il compito di ottimizzare un algoritmo di ricerca che elabora un grande set di dati. Crea un metodo chiamato OptimizeSearchAlgorithm che:
- Accetta come parametri un array frastagliato di interi (
int[][]) e un valore obiettivo - Implementa quattro approcci diversi per trovare il valore obiettivo:
- Usare un ciclo for tradizionale senza memorizzare nella cache le lunghezze degli array
- Usare un ciclo for con le lunghezze degli array memorizzate nella cache
- Usare un ciclo foreach con un contatore
- Usare un metodo ausiliario per verificare se il valore corrisponde al valore obiettivo
- Restituisce il numero totale di corrispondenze trovate usando l'approccio ottimizzato (con le lunghezze memorizzate nella cache)
Il metodo dovrebbe mostrare tutte le tecniche di ottimizzazione dei cicli trattate in questo capitolo.
Provalo tu
public class OptimizeSearchAlgorithm
{
public static int optimizeSearchAlgorithm(int[][] data, int target)
{
// Scrivi qui la tua soluzione
}
// Aggiungi tutti i metodi ausiliari di cui hai bisogno
}Tutte le lezioni di Logica e flusso
1Array multidimensionali
Fondamenti degli array 2DDichiarare e inizializzare array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DArray irregolariOperazioni comuni sulle matriciRipasso: array multidimensionali4Tecniche di controllo del flusso
Uscite anticipateClausole di guardiaIstruzioni di salto (goto)Break e continueAppiattire le condizioni annidate2Decisioni avanzate
Condizioni multipleLogica booleana complessaConfronto tra if e switchIstruzioni switch annidateRiepilogo - decisioni avanzate5Gestione delle eccezioni
Nozioni di base su try-catchTipi di eccezioneBlocchi catch multipliLavorare con i fileBlocco finallyUsing vs. try-finallyEccezioni personalizzateRiepilogo - gestione degli errori3Miglioramenti dei cicli
Prestazioni dei cicliIterare strutture complesseOgni tipo di cicloRifattorizzare i cicliRiepilogo - Cicli ottimizzati6Gestione dei valori null
Fondamenti dei riferimenti nullTipi valore nullableSchemi di controllo dei valori nullProgrammazione difensivaRiepilogo: sicurezza rispetto ai valori nullEsercitati da solo: Compilatore C# online