Vedendo come i miei colleghi hanno risolto l'HW6 mi sono accorto che tutti noi abbiamo usato strategie diverse.
In particolare sono stato colpito da come è stato risolto l'HW dalla matricola 1937764, infatti nel suo codice ho notato che ha fatto uso di classi, grafi, ricorsione e alberi non binari.
Se gli altri ragazzi sono d'accordo, vorrei chiedere a uno qualsiasi dei docenti di dedicare un'ora di lezione alla comprensione del codice in questione, che ritengo interessante per come è stato progettato.
Da quello che è possibile dedurre dalla descrizione del suo algoritmo, il/la collega ha creato un modo per trovare le intersezioni e stabilire l'ordinamento attraverso un unico processo ricorsivo:
Comincia individuando il rettangolo più in basso di tutti (senza rettangoli che gli "passano sopra").
Poi fa un controllo per vedere se questo ne interseca un altro, se ne interseca un altro allora questo secondo starà sopra al primo.
Quindi per ogni rettangolo intersecato, esegue questo calcolo ricorsivamente.
Alla fine ottiene un albero (non binario) dove ogni nodo è il rettangolo (individuato univocamente dal colore) e i figli sono tutti i rettangoli che interseca.
Da questo processo ottiene che l'ordine corretto dei rettangoli sarà il più lungo percorso possibile partendo dal nodo rettangolo più basso fino alla foglia più distante.
Per finire mi volevo complimentare con chi ha fatto questo codice, sia per l'efficienza che per l'idea dell'algoritmo che ho trovato molto interessante.
In particolare sono stato colpito da come è stato risolto l'HW dalla matricola 1937764, infatti nel suo codice ho notato che ha fatto uso di classi, grafi, ricorsione e alberi non binari.
Se gli altri ragazzi sono d'accordo, vorrei chiedere a uno qualsiasi dei docenti di dedicare un'ora di lezione alla comprensione del codice in questione, che ritengo interessante per come è stato progettato.
Da quello che è possibile dedurre dalla descrizione del suo algoritmo, il/la collega ha creato un modo per trovare le intersezioni e stabilire l'ordinamento attraverso un unico processo ricorsivo:
Comincia individuando il rettangolo più in basso di tutti (senza rettangoli che gli "passano sopra").
Poi fa un controllo per vedere se questo ne interseca un altro, se ne interseca un altro allora questo secondo starà sopra al primo.
Quindi per ogni rettangolo intersecato, esegue questo calcolo ricorsivamente.
Alla fine ottiene un albero (non binario) dove ogni nodo è il rettangolo (individuato univocamente dal colore) e i figli sono tutti i rettangoli che interseca.
Da questo processo ottiene che l'ordine corretto dei rettangoli sarà il più lungo percorso possibile partendo dal nodo rettangolo più basso fino alla foglia più distante.
Per finire mi volevo complimentare con chi ha fatto questo codice, sia per l'efficienza che per l'idea dell'algoritmo che ho trovato molto interessante.