Corso preparatorio per colloquio sugli algoritmi

Essere in grado di risolvere vari coding challenge nella programmazione competitiva può essere una skill utilissima sia nel mondo del lavoro che nell'ambito di studio. In questo corso andremo a vedere i vari metodi necessari per risolvere alcuni tipi di problemi e le tecniche più comunemente usate per migliorare nel design degli algoritmi


Corso preparatorio per colloquio sugli algoritmi
1

Come migliorare nei coding challenge

In questa prima parte del corso andremo a vedere quali sono le doti più importanti da avere per essere in grado di risolvere vari tipi di coding challenge per migliorare nella programmazione competitiva

2

Introduzione al concetto di O-Grande

Una delle skill più importanti nel design degli algoritmi è il sapere riconoscere come il tempo di esecuzione di un algoritmo cambia rispetto alle dimensioni dell'input. La notazione O-Grande (In inglese Big-O) ci permette di categorizzare vari algoritmi in base al loro tipo di cambiamento nel tempo di esecuzione rispetto alle dimensioni dell'input. Per esempio, se consideriamo due algoritmi: Uno raddoppia il tempo di esecuzione ogni volta che l'input raddoppia e l'altro raddoppia il tempo di esecuzione ogni volta che l'input aumenta di uno. La notazione O-Grande ci permette di distinguere i due algoritmi e decidere quale di questi sia il più efficiente o scalabile..

3

Che cos'è una Linked List e quando usarla

Prepararsi per un colloquio informatico significa essere pronti a rispondere domande sulla teoria. Anche se questa poi non viene messa in pratica, molte compagnie usano domande teoriche sull'informatica come misura delle conoscenza nel campo del candidato. Per questo bisogna essere in grado di rispondere a domande su argomenti come: Strutture dati, System design, Analisi di algoritmi, etc.. In questa guida cominciamo una serie sulle Strutture dati con la Linked List o Lista Concatenata.

4

Strutture dati: Che cos'è una Pila e quando usarla

Come parte del corso Algoritmi e strutture dati, in questa guida vi verrà introdotto il concetto di un pila (Stack). In più vedrete come implementare una pila in Java e vedrete in quali tipi di problemi è opportuno usarla.