Quale struttura dati o tecnica di programmazione usare quando?

-3

Mentre studiavo per Strutture dati e algoritmi , ho notato che esiste un modello / gruppo in cui ogni domanda cade. Esempio - Detto questo, fai / scopri che - Categoria 1. usa prima questi metodi / tecniche e poi avvicinati. Allo stesso modo per un'altra serie di domande.

Abbiamo un elenco di modelli che possiamo comprendere, in modo che la prossima volta che vediamo un problema, possiamo identificare in quale categoria potrebbe rientrare e seguire tali passaggi per accedervi prima piuttosto che mescolando metodi casuali per risolverli?

Questa domanda non riguarda l'utilizzo di modelli di progettazione come Singleton o Factory ecc., ma di categorie di domande. Esempio: ogni qualvolta vi è una domanda di corrispondenza tra stringhe, provare prima con TRIES, quindi passare ad altre DS. Se è presente l'attraversamento dell'elenco, utilizzare prima questa tecnica specifica (a seconda di quale sia il più consigliato in base alla complessità di tempo / spazio), quindi provare qualcos'altro.

    
posta user2769790 09.10.2017 - 16:30
fonte

2 risposte

7

Come gli schemi di progettazione in Ingegneria del software, eviterei di affrontare problemi con l'intento di utilizzare una struttura dati.

La più grande trappola con i modelli di progettazione è che gli ingegneri proveranno a lanciare schemi di progettazione a un problema e sperano che funzioni. In realtà, i modelli di progettazione dovrebbero emergere man mano che ci si avvicina alla risoluzione del problema e quindi è possibile valutare meglio la soluzione.

Recentemente ho finito di intervistare gli studenti di un college per una posizione di ingegneria del software, e il più grande trip-up è stato quando qualcuno ha cercato di applicare una struttura dati o un algoritmo inappropriati a un problema immediato.

Non sono a conoscenza di elenchi di strutture dati per determinati problemi e, se sono d'accordo, sarebbe utile, sarei cauto nell'usarli per l'avvio di un problema, solo per capire i pro e contro un determinato approccio.

    
risposta data 09.10.2017 - 18:11
fonte
3

No. Un tale elenco di modelli non esiste.

Perché il problema che sto risolvendo non è mai stato risolto prima: ambiente diverso, contesto del dominio diverso, ipotesi diverse, vincoli diversi, aspettative diverse dagli utenti ...

È più efficace insegnare alle persone come affrontare nuovi problemi piuttosto che costruire un elenco ipotetico di schemi che chiunque potrebbe applicare.

    
risposta data 10.10.2017 - 11:48
fonte