Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Algoritmi e strutture dati
 
esercizio 2 scritto algoritmi
Clicca QUI per vedere il messaggio nel forum
lem_123
Ciao a tutti,
stavo guardando la soluzione proposta dal professore dell'esrcizio 2:

*********************
2. Considerate la seguente sequenza di numeri memorizzata in un array che deve essere ordinata in modo crescente:
423 451 516 491 333 243 216 126 321
**************************************

a me come soluzine viene:
321 126 216 243 333 423 491 516 451

invece il prof scrive:
243 321 126 216 333 423 491 516 451


Qualcuno ha fatto questo esercizio?
può postare i passaggi?

Grazie

m.m
praticamente devi scorrere l'array in parallelo da sinistra verso destra cercando il primo elemento maggiore del perno, e da destra verso sinistra cercando il primo
elemento minore del perno. trovati questi due elementi li scambio.
Quando l'elemento maggiore si trova alla destra di quello minore(oppure quando l'elemento minore si trova alla sinistra di quello maggiore,è la stessa cosa),scambio il perno con l'elemento minore.
Quindi :
423 451 516 491 333 243 216 126 321
il perno è 423
scorro da destra verso sinistra cercando il primo elemento maggiore di 423,trovo 451.
scorro da sinistra verso destra cercando il primo elemento minore di 423,trovo 321.
scambio gli 451 e 321.
423 321 516 491 333 243 216 126 451
423 321 126 491 333 243 216 516 451
423 321 126 216 333 243 491 516 451
ora scambio il perno con il 243
243 321 126 216 333 423 491 516 451

Cronovirus
Originally posted by lem_123
Ciao a tutti,
stavo guardando la soluzione proposta dal professore dell'esrcizio 2:

*********************
2. Considerate la seguente sequenza di numeri memorizzata in un array che deve essere ordinata in modo crescente:
423 451 516 491 333 243 216 126 321
**************************************

a me come soluzine viene:
321 126 216 243 333 423 491 516 451

invece il prof scrive:
243 321 126 216 333 423 491 516 451


Qualcuno ha fatto questo esercizio?
può postare i passaggi?

Grazie

Ma sai scherzando.. Vero?

lem_123
Originally posted by Cronovirus
Ma sai scherzando.. Vero?


azz... perdonami se ho offeso la tua intelligenza..

lem_123
grazie
Originally posted by m.m
praticamente devi scorrere l'array in parallelo da sinistra verso destra cercando il primo elemento maggiore del perno, e da destra verso sinistra cercando il primo
elemento minore del perno. trovati questi due elementi li scambio.
Quando l'elemento maggiore si trova alla destra di quello minore(oppure quando l'elemento minore si trova alla sinistra di quello maggiore,è la stessa cosa),scambio il perno con l'elemento minore.
Quindi :
423 451 516 491 333 243 216 126 321
il perno è 423
scorro da destra verso sinistra cercando il primo elemento maggiore di 423,trovo 451.
scorro da sinistra verso destra cercando il primo elemento minore di 423,trovo 321.
scambio gli 451 e 321.
423 321 516 491 333 243 216 126 451
423 321 126 491 333 243 216 516 451
423 321 126 216 333 243 491 516 451
ora scambio il perno con il 243
243 321 126 216 333 423 491 516 451

Cic
Sempre in merito all'esercizio 2 ma riguardo il punto b, la sequenza risultante anziché 516 491 423 451 333 243 216 126 321, non dovrebbe essere
516 491 423 451 333 321 243 216 126?

Cronovirus
Originally posted by lem_123
azz... perdonami se ho offeso la tua intelligenza..


Tu chiedi

2. Considerate la seguente sequenza di numeri memorizzata in un array che deve essere ordinata in modo crescente:
423 451 516 491 333 243 216 126 321
**************************************

a me come soluzine viene:
321 126 216 243 333 423 491 516 451

invece il prof scrive:
243 321 126 216 333 423 491 516 451


Sai come si ordinano i numeri?

Cic
Originally posted by Cic
Sempre in merito all'esercizio 2 ma riguardo il punto b, la sequenza risultante anziché 516 491 423 451 333 243 216 126 321, non dovrebbe essere
516 491 423 451 333 321 243 216 126?


Alla fine ho risolto.

alexx
Originally posted by m.m
praticamente devi scorrere l'array in parallelo da sinistra verso destra cercando il primo elemento maggiore del perno, e da destra verso sinistra cercando il primo
elemento minore del perno. trovati questi due elementi li scambio.
Quando l'elemento maggiore si trova alla destra di quello minore(oppure quando l'elemento minore si trova alla sinistra di quello maggiore,è la stessa cosa),scambio il perno con l'elemento minore.
Quindi :
423 451 516 491 333 243 216 126 321
il perno è 423
scorro da destra verso sinistra cercando il primo elemento maggiore di 423,trovo 451.
scorro da sinistra verso destra cercando il primo elemento minore di 423,trovo 321.
scambio gli 451 e 321.
423 321 516 491 333 243 216 126 451
423 321 126 491 333 243 216 516 451
423 321 126 216 333 243 491 516 451
ora scambio il perno con il 243
243 321 126 216 333 423 491 516 451


ciao! posso chiedervi una cosa? il perno viene scambiato con il numero corrispondente all'indice in cui sono arrivato dopo che ho finito di scorrere l'array? ovvero dove si incontrano i due indici?
e dopo comunque il perno rimane quello iniziale?

lem_123
Originally posted by alexx
ciao! posso chiedervi una cosa? il perno viene scambiato con il numero corrispondente all'indice in cui sono arrivato dopo che ho finito di scorrere l'array? ovvero dove si incontrano i due indici?
e dopo comunque il perno rimane quello iniziale?


Anche io leggendo esempi su internet ho sempre questo dubbio perchè ci sono tanti esempi in cui il perno viene scambiato subito.

Qualcuno ha esempi o esercizi fatti dal prof alla lavagna?

Grazie

lem_123
facendo lo stesso ragionamento sul esercizio quick sort del secondo esame risulterebbe:
sequenza=>8 4 15 12 10 7 11 9 13 perno=8

1)4 7 12 10 15 11 9 13
scorrendo arrivo fino a che i=j cioè sull'elemento 7 e scambio il perno
2)7 4 8 12 10 15 11 9 13

E' corretto il ragionamento?

grazie per l'aiuto

alexx
boh mi sa che non c'è nessuno che risponde. mi sa che alcune cose mi tocca chiederle al prof

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate