Sapevo che il corso di algoritmi non sarebbe stata una passeggiata ma non credevo di riuscirmi a fottere il cervello fino a questo punto!Ho iniziato un capitolo del Cormen dove si parla di quicksort e devo dire che all'inizio scorreva tutto liscio come l'olio... studio della complessità, caso peggiore, caso medio etc... alla fine sono quattro conti precisi!Però mi sono chiesto: ma saprei implementare quicksort in C?Mi sono risposto:credo di si... dai tanto è semplice.Inizio a scrivere, do ogni tanto un'occhiata allo pseudocodice del libro per controllare che stia seguendo la strada giusta, e finisco con l'implementare una procedura "partition" spiccicata a quella di Cormen... non funziona nulla!Mi dispero 3 giorni, faccio controlli assurdi sugli indici, riempio un foglio di <= oppure di >=, ma niente non si risolve!A questo punto ho cominciato a pensare di essere stupido! Non capivo assolutamente quale potesse essere il problema...Il giorno 3 mi sono deciso a scrivere una partition di testa mia... il quicksort ha funzionato dopo 10 minuti!Morale della favola: non seguire lo pseudocodice altrui. Se vuoi implementare bene un algoritmo prima lo devi capire!SalutiDario
Il maledettissimo quicksort
Sapevo che il corso di algoritmi non sarebbe stata una passeggiata ma non credevo di riuscirmi a fottere il cervello fino a questo punto!Ho iniziato un capitolo del Cormen dove si parla di quicksort e devo dire che all'inizio scorreva tutto liscio come l'olio... studio della complessità, caso peggiore, caso medio etc... alla fine sono quattro conti precisi!Però mi sono chiesto: ma saprei implementare quicksort in C?Mi sono risposto:credo di si... dai tanto è semplice.Inizio a scrivere, do ogni tanto un'occhiata allo pseudocodice del libro per controllare che stia seguendo la strada giusta, e finisco con l'implementare una procedura "partition" spiccicata a quella di Cormen... non funziona nulla!Mi dispero 3 giorni, faccio controlli assurdi sugli indici, riempio un foglio di <= oppure di >=, ma niente non si risolve!A questo punto ho cominciato a pensare di essere stupido! Non capivo assolutamente quale potesse essere il problema...Il giorno 3 mi sono deciso a scrivere una partition di testa mia... il quicksort ha funzionato dopo 10 minuti!Morale della favola: non seguire lo pseudocodice altrui. Se vuoi implementare bene un algoritmo prima lo devi capire!SalutiDario