Allora, essendo universitario ho imparato varie cose riguardo gli algoritmi di ordinamento... ora so benissimo che il quick sort teoricamente è il migliore, ma non è il caso in cui io debba usarlo... infatti avendo un array di soli 24 elementi, è logico che quel tipo di algoritmo sia troppo pesante per cosi pochi dati. Detto questo, vorrei quindi scegliere un algoritmo migliore per ordinare il tutto...
Attualmente sono indeciso fra shell sort, insertion sort, merge sort (questo mi sta particolarmente antipatico)... anche il selection sort non dovrebbe andar male, comunque vi dico le prerogative per la scelta dell'algoritmo:
-L'array è di soli 24 elementi, massimo (potrebbe essere di meno...mai minore di 2, per forza :P )
-L'array sarà quasi sempre ordinato, tranne la prima volta(e pazienza perchè è a inizio battaglia) il resto delle volte giusto l'ultimo elemento (il 24esimo) dovrebbe essere in disordine (probabilmente dovrà tornare alla posizione 1)
Detto questo, ricordo che c'era un algoritmo che aveva il suo caso peggiore quando l'array era totalmente ordinato al contrario (questo potrebbe essere un buon algoritmo quindi?), poi invece ce ne era uno il cui caso peggiore era quando è già ordinato, considerato che io avrò una variazione di massimo 1 elemento nell'ordinamento (circa ovviamente), è probabile che questo non vada bene (l'array sarà sempre ordinato al 90%)... se avete suggerimenti quindi, sono ben accetti
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? (Tom Cargill)
Se dovete fare una cosa semplice, tipo
if (a==b) c='pippo';else c='pluto';
Usate le funzionalita' del linguaggio piu' complicato che esiste:
Question
Fire-Dragon-DoL
Allora, essendo universitario ho imparato varie cose riguardo gli algoritmi di ordinamento... ora so benissimo che il quick sort teoricamente è il migliore, ma non è il caso in cui io debba usarlo... infatti avendo un array di soli 24 elementi, è logico che quel tipo di algoritmo sia troppo pesante per cosi pochi dati. Detto questo, vorrei quindi scegliere un algoritmo migliore per ordinare il tutto...
Attualmente sono indeciso fra shell sort, insertion sort, merge sort (questo mi sta particolarmente antipatico)... anche il selection sort non dovrebbe andar male, comunque vi dico le prerogative per la scelta dell'algoritmo:
-L'array è di soli 24 elementi, massimo (potrebbe essere di meno...mai minore di 2, per forza :P )
-L'array sarà quasi sempre ordinato, tranne la prima volta(e pazienza perchè è a inizio battaglia) il resto delle volte giusto l'ultimo elemento (il 24esimo) dovrebbe essere in disordine (probabilmente dovrà tornare alla posizione 1)
Detto questo, ricordo che c'era un algoritmo che aveva il suo caso peggiore quando l'array era totalmente ordinato al contrario (questo potrebbe essere un buon algoritmo quindi?), poi invece ce ne era uno il cui caso peggiore era quando è già ordinato, considerato che io avrò una variazione di massimo 1 elemento nell'ordinamento (circa ovviamente), è probabile che questo non vada bene (l'array sarà sempre ordinato al 90%)... se avete suggerimenti quindi, sono ben accetti
If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one? (Tom Cargill)
Se dovete fare una cosa semplice, tipo
Usate le funzionalita' del linguaggio piu' complicato che esiste:Link to comment
Share on other sites
18 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now