Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Conferme ordinamenti
Forum - C/C++ - Conferme ordinamenti

Avatar
gabama (Normal User)
Rookie


Messaggi: 26
Iscritto: 12/04/2009

Segnala al moderatore
Postato alle 18:21
Mercoledì, 15/04/2009
Sareste così gentili ancora da confermarmi quello che ho scritto?Ovviamente intendo se la simulazione è corretta?
es. array 5 2 4 6 1
- ordinamento per selezione minimo
1 2 4 5 6
poi tra 2 4 5 6
e rimene uguale 2 4 5 6
poi tra 4 6 5
e rimane uguale 4 6 5
poi tra 6 e 5 e rimane
5 6 e l' array è ordinato
- ordinamento per inserzione
5 2 4 6 1
si scambiano 2 e 5
2 5 4 6 1
e poi si colloca 4 al suo posto ,(questo facendo scorrere l' elemento con gli altri?)
2 4 5 6 1
poi 6 uguale e si rifà scorrere il primo a posto
1 2 4 5 6
- ordinamento Bubblesort
5 2 4 6 1
2 5 4 6 1
2 4 5 6 1
2 4 5 1 6
2 4 1 5 6
2 1 4 5 6
1 2 4 5 6

Ultima modifica effettuata da gabama il 15/04/2009 alle 18:24
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:58
Mercoledì, 15/04/2009
Si, il BubbleSort funziona così: c'è un contatore che analizza progressivamente i valori di un vettore e quello maggiore viene messo in vettore[contatore] e quello minore in vettore[contatore + 1], viceversa per l'ordinamento crescente

Ultima modifica effettuata da il 15/04/2009 alle 19:00
PM Quote
Avatar
andrea.b89 (Ex-Member)
Pro


Messaggi: 129
Iscritto: 03/03/2009

Segnala al moderatore
Postato alle 19:32
Mercoledì, 15/04/2009
Dato il seguente vettore

I V
0 3
1 6
2 8
3 1

Il selection sort funziona nel seguente modo :

trova il più piccolo, per un ordinamento crescente altrimenti il più grande, elemento del sotto vettore e lo scambia con la testa del sotto vettore , dove per testa intendo l'elemento con indice minore.

Quindi l'elemento più piccolo fra indice 0 e indice 3 è V[3] quindi si scambia l'elemento di indice 0 con l'elemento di indice 3 e il vettore assume la seguente composizione

I V
0 1
1 6
2 8
3 3

Nel secondo passaggio l'elemento di testa diventa v[1] quindi indice pari a 1 ora l'elemento più piccolo del sotto vettore compreso fra gli indici 1 e 3 quindi v[3].

Risulterà

I V
0 1
1 3
2 8
3 6

Poi all'ultimo passaggio diventa

I V
0 1
1 3
2 6
3 8

Ora passiamo all'inserction sort.

L'inserction sort funziona in modo analogo al selection sort con la differenza che invece di scambiare l'elemento più piccolo con quello di testa sposta tutti gli elementi successivi a quello di testa e prima di quello minore e poi copia all'indice dell'elemento di testa il minimo del sotto vettore.

prendiamo il vettore

I V
0 9
1 8
2 6
3 1

viene calcolato il minimo e salvato in una variabile temporanea.
Poi come detto sposto gli elementi quindi risulta

I V
0 9
1 9
2 8
3 6

infine si copia l'elemento minimo in posizione di testa,ossia I = 0

I V
0 1
1 9
2 8
3 6

poi si ripete.

Il minimo del restante sotto vettore ( 1 <= I <= 3 ) è 6, viene salvato.
Poi sposto gli elementi e risulta.

I V
0 1
1 9
2 9
3 8

e infine ricopio

I V
0 1
1 6
2 9
3 8

Infine si ripete fino ad ordinare il vettore.

Il principio del bubble sort è quello di portare  l'elemento più grande in coda al sotto vettore procedendo per scambi successivi.
In sostanza come tu stesso hai scritto nell'esempio :k:

Spero di essere stato chiaro e di aiuto :k:

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 23:30
Mercoledì, 15/04/2009
Credo che sia sbagliato postare in questo forum, perchè questi sono algoritmi di ordinamento e non parti o programmi di C :)


"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
cit. theprogrammer
PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 23:30
Mercoledì, 15/04/2009
Edit: ho sbagliato, non c'è una modalità per cancellare il messaggio inserito? Chiedo scusa.

Ultima modifica effettuata da Lawliet il 15/04/2009 alle 23:33


"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
cit. theprogrammer
PM Quote