Algoritmi - WordPress.com

annuncio pubblicitario
Algoritmi
Lo strano mondo degli algoritmi di ordinamento
I Tipi Di Algoritmo Di Ordinamento
 SELECTIONSORT
 INSERTIONSORT
 BUBBLESORT
 QUICKSORT
 MERGESORT
 HEAPSORT
 COUNTINGSORT
 BUCKETSORT
SELECTIONSORT



for ( i = 0 ; i < ( n - 1 ) ; i++ )
{
posizione = c;


for ( d = i + 1 ; d < n ; d++ )
{
if ( array[posizione] > array[d] )
position = d;
}
if ( posizione != c )
{
scambio = array[i];
array[i] = array[position];
array[posizione] = scambio;
}











}
MERGE SORT
1.
2.
3.
4.
Se la sequenza da ordinare ha
lunghezza 0 oppure 1, è già
ordinata. Altrimenti:
a sequenza viene divisa in due metà
(se la sequenza contiene un numero
dispari di elementi, viene divisa in
due sottosequenze di cui la prima ha
un elemento in più della seconda)
Ognuna di queste sottosequenze
viene ordinata,
applicando ricorsivamente l'algoritm
o
Le due sottosequenze ordinate
vengono fuse . Per fare questo, si
estrae ripetutamente il minimo delle
due sottosequenze e lo si pone nella
sequenza in uscita, che risulterà
ordinata
BUBBLESORT


for (c = 0 ; c < ( n - 1 ); c++)
{

for (d = 0 ; d < n - c - 1; d++)

{

if (array[d] > array[d+1])

{

scambio= array[d];

array[d] = array[d+1];

array[d+1] = scambio;

}


}
}
QUICKSORT
 L'idea base può esprimersi agevolmente
in termini ricorsivi. Ad ogni stadio si
effettua un ordinamento parziale di una
sequenza di oggetti da ordinare.
Assunto un elemento come perno dello
stadio, si confrontano con esso gli altri
elementi e si posizionano alla sua
sinistra i minori e a destra i maggiori,
senza tener conto del loro ordine.
Dopo questo stadio si ha che il perno è
nella sua posizione definitiva.
 Successivamente si organizzano nuovi
stadi simili nei quali si procede
all'ordinamento parziale delle
sottosequenze di elementi rimasti non
ordinati, fino al loro esaurimento.
INSERTIONSORT
 for (c = 1 ; c <= n - 1; c++) {

d = c;


while ( d > 0 && array[d] <
array[d-1]) {

t
= array[d];

array[d] = array[d-1];

array[d-1] = t;





d--;
}
}
HEAPSORT
 La struttura di dati heap è un vettore







A che puo’:
essere interpretato come un albero
binario
completo B, tranne al più l’ultimo
livello.
• Gli n nodi di B corrispondono alle
posizioni 1..n
del vettore A, nell’ordine in cui si
incontrano i
nodi visitando B per livelli crescenti
ed
esaminando da sinistra a destra i nodi
dello stesso
livello.
BUCKETSORT
 L'algoritmo è semplice ed
intuitivo: si prepara un array C
di dimensione pari a m (cioè al
valore massimo che può essere
nell'array) con C[i] che
rappresenta la frequenza
dell'elemento i nell'array di
partenza A. Si visita l'array A
aumentando l'elemento di C
corrispondente. Dopo si visita
l'array C in ordine e si scrivono
su A, C[i] copie del valore i.
Scarica