Oppure

Loading
15/04/09 16:21
gabama
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 15/04/09 16:24
aaa
15/04/09 16:58
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 15/04/09 17:00
15/04/09 17:32
andrea.b89
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:
aaa
15/04/09 21:30
Lawliet
Credo che sia sbagliato postare in questo forum, perchè questi sono algoritmi di ordinamento e non parti o programmi di C :)
aaa
15/04/09 21:30
Lawliet
Edit: ho sbagliato, non c'è una modalità per cancellare il messaggio inserito? Chiedo scusa.
Ultima modifica effettuata da Lawliet 15/04/09 21:33
aaa