Recent Posts
frammenti di razionalità
Return To Blog Listing
Tutto ciò che mi passa per la testa per quanto riguarda musica, programmazione, politica ecc...
Recent Posts Tagged With 'c'
L’operatore ternario in Python
Il costrutto che più adoro del C è l’operatore ternario, formidabile se si vuol scrivere codice poco leggibile . Per chi non lo conoscesse, l’operatore”? :” permette di scrivere questo costrutto condizionale if (a>b) ...
Performance di alcuni linguaggi di programmazione
Non avendo nulla di meglio da fare, mi son messo a valutare le performance di esecuzione dei linguaggi che conosco nella risoluzione del “Problema di Flavio Giuseppe”, la cui soluzione vi permetterà di salvarvi nel caso abbiate deciso al...
Dive Into Python
In questi giorni mi sono “immerso” nello studio del Python, un interessante linguaggio di scripting che mi ero promesso di imparare data la sua crescente diffusione nel mondo del software open (e non). La rete mi ha aiutato tantissimo: su...
registerimage 1.0.2
Il rilascio della versione 1.6 di VirtualBox della Sun mi ha portato ad effettuare qualche importante modifica al mio software registerimage per la registrazione automatica delle immagini virtuale create per il progetto VirtualBox Images. L’ult...
Quickselect
Il Quickselect è un algoritmo randomizzato ricorsivo che trova l’elemento che si troverebbe in k-esima posizione se l’array in cui si trova fosse ordinato. Su un array di grandezza l’algoritmo esegue confronti nel caso peggiore ...
registerimage 1.0.1!
Ho corretto qualche piccolo bug della prima versione del mio software di registrazione di immagini virtuali VirtualBox. A causa di una mia disattenzione, la versione 1.0 prendeva in input 3 argomenti; mi sono ricordato dopo che il terzo argomento pot...
registerimage 1.0 released!!
In un post precedente ho parlato della mia partecipazione al progetto VirtualBox® Images. Uno dei principali problemi relativi all’utilizzo delle nostre immagini è quello legato alla difficile portabilità delle immagini su macchine virtuali ...
Usare Graphviz e DOT per stampare un albero binario
Graphviz è un pacchetto di software open source sviluppato dagli AT&T Research Labs per la rappresentazione di grafi descritti mediante il linguaggio di scripting DOT. DOT è un linguaggio abbastanza semplice ed immediato. Per esempio, il codice...
Alberi AVL
Gli alberi AVL sono degli alberi binari bilanciati in altezza. Un albero binario si dice bilanciato in altezza se, per ciascun nodo dell’albero, l’altezza del sottoalbero sinistro differisce dall’altezza del sottoalbero destro al pi...
Radix sort
Il radix sort è un algoritmo di ordinamento che permette di ordinare un insieme di n record con chiavi intere comprese tra e con un costo computazionale pari a . L’algoritmo utilizza un altro algoritmo di ordinamento per chiavi intere, chiam...
Levenshtein distance - An optimized version
We can adapt the algorithm to use less space, instead of , since it only requires that the previous row and current row be stored at any one time. This is the second version of the algorithm int levenshtein_distance(char *x, char *y){ int m=strle...
Programmazione dinamica - Distanza di Levenshtein
La Distanza di Levenshtein è la distanza tra due stringhe S1 ed S2, dove per distanza intendiamo il numero minimo di operazioni elementari che occorre fare per trasformare la stringa S1 nella stringa S2. Queste operazioni elementari includono: canc...
Heapsort - implementazione
L’heapsort è un efficiente metodo di ordinamento caratterizzato da un costo computazionale nel caso peggiore pari a . Lo heapsort rientra nella classe degli algoritmi di ordinamento basati sui confronti e ha la particolarità di sfruttare una ...
C Socket Programming in the UNIX environment - part 5
Ecco il codice di una semplicissima applicazione client-server che simula il servizio daytime. In maniera molto banale, il client si connette al server per ottenere data e ora corrente. Ecco il codice del server:...
C Socket Programming in the UNIX environment - part 4
Iniziamo a metter in pratica quello che abbiamo imparato fino ad oggi! Abbiamo visto come allocare le risorse per inizializzare una comunicazione tra processi attraverso la chiamata alla funzione socket e quali strutture usare per la gestione degli i...
Generic quicksort
Nel post precedente ho parlato di come poter usar i void* in C come tipi generici da usare per render estremamente flessibile le funzioni e il codice in generale; ho parlato pure dellla funzione qsort della libreria standard del C che è l’esem...
