View Full Version : [Qualsiasi Linguaggio] Mi servirebbe un algoritmo per ordinare alfabeticamente.
Supponete di avere una array di stringhe conteneti delle parole che dovete mettere in ordine alfabetico! Come si fa?? Qualcuno ha qualche algoritmno già scritto??
Mi servirebbe in pascal ma ovviamente mi basta l'algoritmo poi per il codice non ho problemi!
A livello molto generale io ho pensato che si dovrebbe controllare la prima lettera e ordinare le parole in base alla prima lettera. Poi tenendo conto della prima lettera ordinare alfabeticamente in base alla seconda lettere. Poi tenendo conto delle prime due lettere si dovrebbe ordinare ina base alla terza e così via...
Ma ai fini pratici come si fa???
AIUTO!!
h1jack3r
07-04-2006, 22:46
Quick sort (http://it.wikipedia.org/wiki/Quick-Sort)
Qualche indicazione un po' più precisa?? :( :(
wingman87
08-04-2006, 15:06
Clicca il link che ti ha postato :)
io ne ho uno molto semplice, forse prestazionalmente fa un po' schifo ma è facile da scrivere: si confronta sempre una coppia di elementi successivi n ed n+1 (a partire dai primi due):
se n > n+1 si scambiano i due elementi, n diventa n+1 della coppia successiva e l'elemento precedente ad n diventa n della coppia successiva. si continua a scambiarli ed a passare alla coppia precedente finché n+1 deve andare prima di n, o finché non si arriva all'inizio dell'array;
se n < n+1 (i due elementi sono ordinati tra loro) n+1 diventa n e l'elemento successivo a n+1 diventa n+1 della coppia successiva.
quando la coppia costituita dagli ultimi due elementi dell'array da ordinare sono ordinati tra loro, l'array è ordinato.
nel caso peggiore (elementi nell'ordine inverso) richiede circa (N^2)/2 iterazioni
Clicca il link che ti ha postato :)
Forse li non ho trovato quello che cercavo??
Il quick sort lo conosco ma io intendevo un algoritmo scritto apposta per l'ordinamento alfabetico! Gli algoritmi di ordinamento in generale li conosco...
Cmq ho risolto! Alla fine era moooolto più semplice di quanto pensassi... In pratica il PASCAL mi permette di confrontare 2 stringhe come se fossero degli interi... Mi spiego: posso scrivere "IF parola1 < parola2 THEN scambia di posto", quindi all fine non ho bisogno di andare a confrontare lettera per lettera...
Grazie lo stesso cmq!
wingman87
09-04-2006, 15:42
Forse li non ho trovato quello che cercavo??
Non l'avevi mica detto.. :ciapet:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.