-
ordinamenti variho due array di elementi dello stesso tipo
il primo è ordinato il secondo dovrebbe esserlo ma non è detto.
devo fonderli in un terzo array in modo che rimangano ordinati.
pensavo di controllare l'ordinamento del secondo in qualche modo (qsort? mergesort? shellsort? trollsort?) e poi unire l'uno con l'altro con una cosa del tipo
a(i) < b(j) ?
sì:
c(i+j)=a(i);i++;
no:
c(i+j)=b(j);j++;
ma magari esiste qualcosa di più prestante, che riesca ad effettuare l'ordinamento del secondo array in contemporanea alla fusione...-
Re: ordinamenti vari
- Scritto da: S-1-5-7
> ho due array di elementi dello stesso tipo
> il primo è ordinato il secondo dovrebbe esserlo
> ma non è
> detto.
> devo fonderli in un terzo array in modo che
> rimangano
> ordinati.
>
> pensavo di controllare l'ordinamento del secondo
> in qualche modo (qsort? mergesort? shellsort?
> trollsort?) e poi unire l'uno con l'altro con una
> cosa del tipo
>
> a(i) < b(j) ?
> sì:
> c(i+j)=a(i);i++;
> no:
> c(i+j)=b(j);j++;
>
> ma magari esiste qualcosa di più prestante, che
> riesca ad effettuare l'ordinamento del secondo
> array in contemporanea alla
> fusione...
Linguaggio? Sono array a dimensione variabile in cui puoi infilare gli elementi in mezzo?
Scorri b e appendi gli elementi ad a nel posto giusto, altrimenti bubble sort o quick sort.-
Re: ordinamenti variScritto daNon Autenticatoil 2009-08-28 14:15:00.0 alle 2009-08-28 14:15:00.0
- Scritto da: pentothal
>
> - Scritto da: S-1-5-7
> > ho due array di elementi dello stesso tipo
> > il primo è ordinato il secondo dovrebbe esserlo
> > ma non è
> > detto.
> > devo fonderli in un terzo array in modo che
> > rimangano
> > ordinati.
> >
> > pensavo di controllare l'ordinamento del secondo
> > in qualche modo (qsort? mergesort? shellsort?
> > trollsort?) e poi unire l'uno con l'altro con
> una
> > cosa del tipo
> >
> > a(i) < b(j) ?
> > sì:
> > c(i+j)=a(i);i++;
> > no:
> > c(i+j)=b(j);j++;
> >
> > ma magari esiste qualcosa di più prestante, che
> > riesca ad effettuare l'ordinamento del secondo
> > array in contemporanea alla
> > fusione...
>
> Linguaggio? Sono array a dimensione variabile in
> cui puoi infilare gli elementi in
> mezzo?
> Scorri b e appendi gli elementi ad a nel posto
> giusto, altrimenti bubble sort o quick
> sort.
Stavo per dirlo io.
-
Re: ordinamenti vari
- Scritto da: pentothal
>
> - Scritto da: S-1-5-7
> > ho due array di elementi dello stesso tipo
> > il primo è ordinato il secondo dovrebbe esserlo
> > ma non è
> > detto.
> > devo fonderli in un terzo array in modo che
> > rimangano
> > ordinati.
> >
> > pensavo di controllare l'ordinamento del secondo
> > in qualche modo (qsort? mergesort? shellsort?
> > trollsort?) e poi unire l'uno con l'altro con
> una
> > cosa del tipo
> >
> > a(i) < b(j) ?
> > sì:
> > c(i+j)=a(i);i++;
> > no:
> > c(i+j)=b(j);j++;
> >
> > ma magari esiste qualcosa di più prestante, che
> > riesca ad effettuare l'ordinamento del secondo
> > array in contemporanea alla
> > fusione...
>
> Linguaggio? Sono array a dimensione variabile in
> cui puoi infilare gli elementi in
> mezzo?
> Scorri b e appendi gli elementi ad a nel posto
> giusto, altrimenti bubble sort o quick
> sort.
vbs, gli arrei sono fissi, infilare nel posto giusto è stato il mio primo pensiero (benché di tanto in tanto non mi dispiace il posto sbagliato), ma ho pensato anche che nel caso peggiore (raro) infilare nel posto giusto gli elementi dell'array b in a richiede un ciclo pari a sommatoria da a ad a+b quindi a*(b+1)
beh non è neanche tanto male, mi sa che il vino a pranzo mi ha fatto valutare erroneamente la complesstà computazionale.....
-
Re: ordinamenti variScritto daNon Autenticatoil 2009-08-28 14:39:00.0 alle 2009-08-28 14:39:00.0
- Scritto da: S-1-5-7
>
> - Scritto da: pentothal
> >
> > - Scritto da: S-1-5-7
> > > ho due array di elementi dello stesso tipo
> > > il primo è ordinato il secondo dovrebbe
> esserlo
> > > ma non è
> > > detto.
> > > devo fonderli in un terzo array in modo che
> > > rimangano
> > > ordinati.
> > >
> > > pensavo di controllare l'ordinamento del
> secondo
> > > in qualche modo (qsort? mergesort? shellsort?
> > > trollsort?) e poi unire l'uno con l'altro con
> > una
> > > cosa del tipo
> > >
> > > a(i) < b(j) ?
> > > sì:
> > > c(i+j)=a(i);i++;
> > > no:
> > > c(i+j)=b(j);j++;
> > >
> > > ma magari esiste qualcosa di più prestante,
> che
> > > riesca ad effettuare l'ordinamento del secondo
> > > array in contemporanea alla
> > > fusione...
> >
> > Linguaggio? Sono array a dimensione variabile in
> > cui puoi infilare gli elementi in
> > mezzo?
> > Scorri b e appendi gli elementi ad a nel posto
> > giusto, altrimenti bubble sort o quick
> > sort.
>
> vbs, gli arrei sono fissi, infilare nel posto
> giusto è stato il mio primo pensiero (benché di
> tanto in tanto non mi dispiace il posto
> sbagliato), ma ho pensato anche che nel caso
> peggiore (raro) infilare nel posto giusto gli
> elementi dell'array b in a richiede un ciclo pari
> a sommatoria da a ad a+b quindi
> a*(b+1)
>
> beh non è neanche tanto male, mi sa che il vino a
> pranzo mi ha fatto valutare erroneamente la
> complesstà
> computazionale.....
Smettila di drogarti, altrochè!-
Re: ordinamenti vari
- Scritto da:
>
> - Scritto da: S-1-5-7
> >
> > - Scritto da: pentothal
> > >
> > > - Scritto da: S-1-5-7
> > > > ho due array di elementi dello stesso tipo
> > > > il primo è ordinato il secondo dovrebbe
> > esserlo
> > > > ma non è
> > > > detto.
> > > > devo fonderli in un terzo array in modo che
> > > > rimangano
> > > > ordinati.
> > > >
> > > > pensavo di controllare l'ordinamento del
> > secondo
> > > > in qualche modo (qsort? mergesort?
> shellsort?
> > > > trollsort?) e poi unire l'uno con l'altro
> con
> > > una
> > > > cosa del tipo
> > > >
> > > > a(i) < b(j) ?
> > > > sì:
> > > > c(i+j)=a(i);i++;
> > > > no:
> > > > c(i+j)=b(j);j++;
> > > >
> > > > ma magari esiste qualcosa di più prestante,
> > che
> > > > riesca ad effettuare l'ordinamento del
> secondo
> > > > array in contemporanea alla
> > > > fusione...
> > >
> > > Linguaggio? Sono array a dimensione variabile
> in
> > > cui puoi infilare gli elementi in
> > > mezzo?
> > > Scorri b e appendi gli elementi ad a nel posto
> > > giusto, altrimenti bubble sort o quick
> > > sort.
> >
> > vbs, gli arrei sono fissi, infilare nel posto
> > giusto è stato il mio primo pensiero (benché di
> > tanto in tanto non mi dispiace il posto
> > sbagliato), ma ho pensato anche che nel caso
> > peggiore (raro) infilare nel posto giusto gli
> > elementi dell'array b in a richiede un ciclo
> pari
> > a sommatoria da a ad a+b quindi
> > a*(b+1)
> >
> > beh non è neanche tanto male, mi sa che il vino
> a
> > pranzo mi ha fatto valutare erroneamente la
> > complesstà
> > computazionale.....
>
> Smettila di drogarti, altrochè!
macché droga!
però ho magniato un salame.... delizioso! accompagnato con del vino incredibile-
Re: ordinamenti variScritto daNon Autenticatoil 2009-08-28 14:49:00.0 alle 2009-08-28 14:49:00.0
- Scritto da: S-1-5-7
>
> - Scritto da:
> >
> > - Scritto da: S-1-5-7
> > >
> > > - Scritto da: pentothal
> > > >
> > > > - Scritto da: S-1-5-7
> > > > > ho due array di elementi dello stesso tipo
> > > > > il primo è ordinato il secondo dovrebbe
> > > esserlo
> > > > > ma non è
> > > > > detto.
> > > > > devo fonderli in un terzo array in modo
> che
> > > > > rimangano
> > > > > ordinati.
> > > > >
> > > > > pensavo di controllare l'ordinamento del
> > > secondo
> > > > > in qualche modo (qsort? mergesort?
> > shellsort?
> > > > > trollsort?) e poi unire l'uno con l'altro
> > con
> > > > una
> > > > > cosa del tipo
> > > > >
> > > > > a(i) < b(j) ?
> > > > > sì:
> > > > > c(i+j)=a(i);i++;
> > > > > no:
> > > > > c(i+j)=b(j);j++;
> > > > >
> > > > > ma magari esiste qualcosa di più
> prestante,
> > > che
> > > > > riesca ad effettuare l'ordinamento del
> > secondo
> > > > > array in contemporanea alla
> > > > > fusione...
> > > >
> > > > Linguaggio? Sono array a dimensione
> variabile
> > in
> > > > cui puoi infilare gli elementi in
> > > > mezzo?
> > > > Scorri b e appendi gli elementi ad a nel
> posto
> > > > giusto, altrimenti bubble sort o quick
> > > > sort.
> > >
> > > vbs, gli arrei sono fissi, infilare nel posto
> > > giusto è stato il mio primo pensiero (benché
> di
> > > tanto in tanto non mi dispiace il posto
> > > sbagliato), ma ho pensato anche che nel caso
> > > peggiore (raro) infilare nel posto giusto gli
> > > elementi dell'array b in a richiede un ciclo
> > pari
> > > a sommatoria da a ad a+b quindi
> > > a*(b+1)
> > >
> > > beh non è neanche tanto male, mi sa che il
> vino
> > a
> > > pranzo mi ha fatto valutare erroneamente la
> > > complesstà
> > > computazionale.....
> >
> > Smettila di drogarti, altrochè!
>
> macché droga!
> però ho magniato un salame.... delizioso!
> accompagnato con del vino
> incredibile
Sicuramente tavernello e quella merda che spacciano per salame al supermercato.-
Re: ordinamenti vari
- Scritto da:
>
> - Scritto da: S-1-5-7
> >
> > - Scritto da:
> > >
> > > - Scritto da: S-1-5-7
> > > >
> > > > - Scritto da: pentothal
> > > > >
> > > > > - Scritto da: S-1-5-7
> > > > > > ho due array di elementi dello stesso
> tipo
> > > > > > il primo è ordinato il secondo dovrebbe
> > > > esserlo
> > > > > > ma non è
> > > > > > detto.
> > > > > > devo fonderli in un terzo array in modo
> > che
> > > > > > rimangano
> > > > > > ordinati.
> > > > > >
> > > > > > pensavo di controllare l'ordinamento del
> > > > secondo
> > > > > > in qualche modo (qsort? mergesort?
> > > shellsort?
> > > > > > trollsort?) e poi unire l'uno con
> l'altro
> > > con
> > > > > una
> > > > > > cosa del tipo
> > > > > >
> > > > > > a(i) < b(j) ?
> > > > > > sì:
> > > > > > c(i+j)=a(i);i++;
> > > > > > no:
> > > > > > c(i+j)=b(j);j++;
> > > > > >
> > > > > > ma magari esiste qualcosa di più
> > prestante,
> > > > che
> > > > > > riesca ad effettuare l'ordinamento del
> > > secondo
> > > > > > array in contemporanea alla
> > > > > > fusione...
> > > > >
> > > > > Linguaggio? Sono array a dimensione
> > variabile
> > > in
> > > > > cui puoi infilare gli elementi in
> > > > > mezzo?
> > > > > Scorri b e appendi gli elementi ad a nel
> > posto
> > > > > giusto, altrimenti bubble sort o quick
> > > > > sort.
> > > >
> > > > vbs, gli arrei sono fissi, infilare nel
> posto
> > > > giusto è stato il mio primo pensiero (benché
> > di
> > > > tanto in tanto non mi dispiace il posto
> > > > sbagliato), ma ho pensato anche che nel caso
> > > > peggiore (raro) infilare nel posto giusto
> gli
> > > > elementi dell'array b in a richiede un ciclo
> > > pari
> > > > a sommatoria da a ad a+b quindi
> > > > a*(b+1)
> > > >
> > > > beh non è neanche tanto male, mi sa che il
> > vino
> > > a
> > > > pranzo mi ha fatto valutare erroneamente la
> > > > complesstà
> > > > computazionale.....
> > >
> > > Smettila di drogarti, altrochè!
> >
> > macché droga!
> > però ho magniato un salame.... delizioso!
> > accompagnato con del vino
> > incredibile
>
> Sicuramente tavernello e quella merda che
> spacciano per salame al
> supermercato.
no, sono stato (più di una volta, ma l'ultima è stata fatale!) in un'osteria a motta visconti, mai mangiato roba così.
oh, i piatti non erano mica nulla di sofisticato... ma gli ingredienti, tutta roba delle cascine lì in zona, la fine del mondo te lo dico io!
-
-
-
-
Re: ordinamenti vari
- Scritto da: S-1-5-7
>
> - Scritto da: pentothal
> >
> > - Scritto da: S-1-5-7
> > > ho due array di elementi dello stesso tipo
> > > il primo è ordinato il secondo dovrebbe
> esserlo
> > > ma non è
> > > detto.
> > > devo fonderli in un terzo array in modo che
> > > rimangano
> > > ordinati.
> > >
> > > pensavo di controllare l'ordinamento del
> secondo
> > > in qualche modo (qsort? mergesort? shellsort?
> > > trollsort?) e poi unire l'uno con l'altro con
> > una
> > > cosa del tipo
> > >
> > > a(i) < b(j) ?
> > > sì:
> > > c(i+j)=a(i);i++;
> > > no:
> > > c(i+j)=b(j);j++;
> > >
> > > ma magari esiste qualcosa di più prestante,
> che
> > > riesca ad effettuare l'ordinamento del secondo
> > > array in contemporanea alla
> > > fusione...
> >
> > Linguaggio? Sono array a dimensione variabile in
> > cui puoi infilare gli elementi in
> > mezzo?
> > Scorri b e appendi gli elementi ad a nel posto
> > giusto, altrimenti bubble sort o quick
> > sort.
>
> vbs, gli arrei sono fissi, infilare nel posto
> giusto è stato il mio primo pensiero (benché di
> tanto in tanto non mi dispiace il posto
> sbagliato), ma ho pensato anche che nel caso
> peggiore (raro) infilare nel posto giusto gli
> elementi dell'array b in a richiede un ciclo pari
> a sommatoria da a ad a+b quindi
> a*(b+1)
>
> beh non è neanche tanto male, mi sa che il vino a
> pranzo mi ha fatto valutare erroneamente la
> complesstà
> computazionale.....
Linked List?
http://support.microsoft.com/kb/166394
-
Re: ordinamenti variScritto daavvelentaniCubicolarioil 2009-08-28 15:24:00.0 alle 2009-08-28 15:24:00.0Trollate totali: 18184
- Scritto da: S-1-5-7
>
> - Scritto da: pentothal
> >
> > - Scritto da: S-1-5-7
> > > ho due array di elementi dello stesso tipo
> > > il primo è ordinato il secondo dovrebbe
> esserlo
> > > ma non è
> > > detto.
> > > devo fonderli in un terzo array in modo che
> > > rimangano
> > > ordinati.
> > >
> > > pensavo di controllare l'ordinamento del
> secondo
> > > in qualche modo (qsort? mergesort? shellsort?
> > > trollsort?) e poi unire l'uno con l'altro con
> > una
> > > cosa del tipo
> > >
> > > a(i) < b(j) ?
> > > sì:
> > > c(i+j)=a(i);i++;
> > > no:
> > > c(i+j)=b(j);j++;
> > >
> > > ma magari esiste qualcosa di più prestante,
> che
> > > riesca ad effettuare l'ordinamento del secondo
> > > array in contemporanea alla
> > > fusione...
> >
> > Linguaggio? Sono array a dimensione variabile in
> > cui puoi infilare gli elementi in
> > mezzo?
> > Scorri b e appendi gli elementi ad a nel posto
> > giusto, altrimenti bubble sort o quick
> > sort.
>
> vbs, gli arrei sono fissi, infilare nel posto
> giusto è stato il mio primo pensiero (benché di
> tanto in tanto non mi dispiace il posto
> sbagliato), ma ho pensato anche che nel caso
> peggiore (raro) infilare nel posto giusto gli
> elementi dell'array b in a richiede un ciclo pari
> a sommatoria da a ad a+b quindi
> a*(b+1)
>
> beh non è neanche tanto male, mi sa che il vino a
> pranzo mi ha fatto valutare erroneamente la
> complesstà
> computazionale.....
in vino veritas, e` un algoritmo del cazzo.I think happiness is love
- Vladimir Putin
-
-
Re: ordinamenti variScritto daNon Autenticatoil 2009-08-28 16:44:00.0 alle 2009-08-28 16:44:00.0
- Scritto da: pentothal
>
> - Scritto da: S-1-5-7
> > ho due array di elementi dello stesso tipo
> > il primo è ordinato il secondo dovrebbe esserlo
> > ma non è
> > detto.
> > devo fonderli in un terzo array in modo che
> > rimangano
> > ordinati.
> >
> > pensavo di controllare l'ordinamento del secondo
> > in qualche modo (qsort? mergesort? shellsort?
> > trollsort?) e poi unire l'uno con l'altro con
> una
> > cosa del tipo
> >
> > a(i) < b(j) ?
> > sì:
> > c(i+j)=a(i);i++;
> > no:
> > c(i+j)=b(j);j++;
> >
> > ma magari esiste qualcosa di più prestante, che
> > riesca ad effettuare l'ordinamento del secondo
> > array in contemporanea alla
> > fusione...
>
> Linguaggio? Sono array a dimensione variabile in
> cui puoi infilare gli elementi in
> mezzo?
> Scorri b e appendi gli elementi ad a nel posto
> giusto, altrimenti bubble sort o quick
> sort.
siamo quasi nel 2010 e c'è ancora chi usa il bubble sort
-
Re: ordinamenti vari- Scritto da:
>
> - Scritto da: pentothal
> >
> > - Scritto da: S-1-5-7
> > > ho due array di elementi dello stesso tipo
> > > il primo è ordinato il secondo dovrebbe
> esserlo
> > > ma non è
> > > detto.
> > > devo fonderli in un terzo array in modo che
> > > rimangano
> > > ordinati.
> > >
> > > pensavo di controllare l'ordinamento del
> secondo
> > > in qualche modo (qsort? mergesort? shellsort?
> > > trollsort?) e poi unire l'uno con l'altro con
> > una
> > > cosa del tipo
> > >
> > > a(i) < b(j) ?
> > > sì:
> > > c(i+j)=a(i);i++;
> > > no:
> > > c(i+j)=b(j);j++;
> > >
> > > ma magari esiste qualcosa di più prestante,
> che
> > > riesca ad effettuare l'ordinamento del secondo
> > > array in contemporanea alla
> > > fusione...
> >
> > Linguaggio? Sono array a dimensione variabile in
> > cui puoi infilare gli elementi in
> > mezzo?
> > Scorri b e appendi gli elementi ad a nel posto
> > giusto, altrimenti bubble sort o quick
> > sort.
>
> siamo quasi nel 2010 e c'è ancora chi usa il
> bubble sort
>
Mai fatto un sort nel codice o quasi (però uso sempre i db, non conta mi sa).


-
Re: ordinamenti variScritto daNon Autenticatoil 2009-08-28 17:04:00.0 alle 2009-08-28 17:04:00.0
- Scritto da: pentothal
> - Scritto da:
> >
> > - Scritto da: pentothal
> > >
> > > - Scritto da: S-1-5-7
> > > > ho due array di elementi dello stesso tipo
> > > > il primo è ordinato il secondo dovrebbe
> > esserlo
> > > > ma non è
> > > > detto.
> > > > devo fonderli in un terzo array in modo che
> > > > rimangano
> > > > ordinati.
> > > >
> > > > pensavo di controllare l'ordinamento del
> > secondo
> > > > in qualche modo (qsort? mergesort?
> shellsort?
> > > > trollsort?) e poi unire l'uno con l'altro
> con
> > > una
> > > > cosa del tipo
> > > >
> > > > a(i) < b(j) ?
> > > > sì:
> > > > c(i+j)=a(i);i++;
> > > > no:
> > > > c(i+j)=b(j);j++;
> > > >
> > > > ma magari esiste qualcosa di più prestante,
> > che
> > > > riesca ad effettuare l'ordinamento del
> secondo
> > > > array in contemporanea alla
> > > > fusione...
> > >
> > > Linguaggio? Sono array a dimensione variabile
> in
> > > cui puoi infilare gli elementi in
> > > mezzo?
> > > Scorri b e appendi gli elementi ad a nel posto
> > > giusto, altrimenti bubble sort o quick
> > > sort.
> >
> > siamo quasi nel 2010 e c'è ancora chi usa il
> > bubble sort
> >
>
> Mai fatto un sort nel codice o quasi (però uso
> sempre i db, non conta mi sa).

>
>
>
>
>
> [img]http://3.bp.blogspot.com/_a8tkxqEE_G4/SnPo5GF
Ignorante!
-
-
-
-
Re: ordinamenti vari
- Scritto da: S-1-5-7
> ho due array di elementi dello stesso tipo
> il primo è ordinato il secondo dovrebbe esserlo
> ma non è
> detto.
> devo fonderli in un terzo array in modo che
> rimangano
> ordinati.
Unisci i due array (O(1)), poi Quicksortali (O(n.log(n))). Semplice, rapido.`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
Re: ordinamenti variScritto daavvelentaniCubicolarioil 2009-08-28 15:19:00.0 alle 2009-08-28 15:19:00.0Trollate totali: 18184
- Scritto da: S-1-5-7
> ho due array di elementi dello stesso tipo
> il primo è ordinato il secondo dovrebbe esserlo
> ma non è
> detto.
> devo fonderli in un terzo array in modo che
> rimangano
> ordinati.
>
> pensavo di controllare l'ordinamento del secondo
> in qualche modo (qsort? mergesort? shellsort?
> trollsort?) e poi unire l'uno con l'altro con una
> cosa del tipo
>
> a(i) < b(j) ?
> sì:
> c(i+j)=a(i);i++;
> no:
> c(i+j)=b(j);j++;
>
> ma magari esiste qualcosa di più prestante, che
> riesca ad effettuare l'ordinamento del secondo
> array in contemporanea alla
> fusione...
controlli che b sia ordinato se non lo e` lo ordini con qualcosa e poi fai il merge con una scansione simultanea. Se b e` quasi sempre ordinato, questo codice deve essere molto veloce e b ha piu` di qualche milione di elementi e nel 90% dei casi e` ordinato puoi fare un ottimizzazione ottimista e passare subito alla scansione simultanea, eventualmente buttando via i risultati intermedi se scopri che non era ordinato (in casi estremi quando ti accorgi del disordine finisci di appendere a al risultato parziale, ordini il resto di b e poi rifai la scansione simultanea dei due risultati parziali).I think happiness is love
- Vladimir Putin
-