Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-03-2007, 02:05   #1
casacup
Senior Member
 
Iscritto dal: Feb 2006
Città: AQ
Messaggi: 2787
preparando fond inf 2... problema merge sort...

salve a tutti!
mi sto dando alla pazza gioia con quelle 6-7-8 ore al giorno di informatica 2 causa esami... e sono arrivato al fatidico merge sort. Il linguaggio è il c++, l'algoritmo è il merge sort creato per evitare troppa occupazione in memoria centrale (comunque buono per dim input < 10^6).

Codice:
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<conio.h>
using namespace std;


const int n_max=1000;
typedef int tipo_elementi;
struct  tipo_insieme{
                     tipo_elementi elementi[n_max];
                     int lunghezza;
                     };
tipo_insieme I,I1,I2;

void creainsieme(tipo_insieme &Insieme)
{
     cout<<"inserisci il numero di elementi dell'insieme ";
     cin>>Insieme.lunghezza;
     for(int i=0;i<Insieme.lunghezza;i++)
     { 
              cout<<"inserisci l'elemento  "<<i<<"  ";
              cin>>Insieme.elementi[i];
     }
}                       



void merge(tipo_insieme insieme1,tipo_insieme insieme2,tipo_insieme &insieme)
{ 
     int k=0,j=0,i=0;
                            while((i<insieme1.lunghezza)&&(j<insieme2.lunghezza))
                            {
                            if(insieme1.elementi[i]<insieme2.elementi[j])
                            {insieme.elementi[k]=insieme1.elementi[i];
                            i++;}
                            else
                            {
                            insieme.elementi[k]=insieme2.elementi[j];
                            j++;
                            }
                            k++;
                            }        
                            
                            
                            while(i<insieme1.lunghezza) 
                                {     insieme.elementi[k]=insieme1.elementi[i];
                                i++;k++;}
                                    
                            while(j<insieme2.lunghezza) 
                                {     insieme.elementi[k]=insieme2.elementi[j];
                                j++;k++;}
                           insieme.lunghezza=k;   
                                 
}



void mergesort(tipo_insieme &seq)
{
     tipo_insieme seq1,seq2;
     
     if (seq.lunghezza!=1)     {
                               seq1.lunghezza=(seq.lunghezza/2);
                               if(seq.lunghezza==(seq1.lunghezza*2))
                               seq2.lunghezza=(seq.lunghezza/2);
                               else
                               seq2.lunghezza=(seq.lunghezza/2)+1;                               
                               for(int i=0;i<seq1.lunghezza;i++)
                               seq1.elementi[i]=seq.elementi[i];
                               
                               //cout<<seq1.lunghezza<<"    j    "<<seq2.lunghezza<<"     ";       stampa di controllo
                               for(int i=0;i<seq2.lunghezza;i++)
                               seq2.elementi[i]=seq.elementi[i+seq1.lunghezza];
                               
     mergesort(seq1);
     mergesort(seq2);
     merge(seq1,seq2,seq);
     }
   
}      





void stampainsieme(tipo_insieme Insieme1)
{
     for (int i=0;i<Insieme1.lunghezza;i++)
       cout<<"   "<<Insieme1.elementi[i];
       cout<<endl;
}




int main()
{
creainsieme(I1);
mergesort(I1);
stampainsieme(I1);
system("pause");
return 0;
}

ora, da quello che ho capito io in pratica il sistema merge-sort prende un array di dimensione n ed, in maniera ricorsiva, lo divide in due (quindi i due array vengono divisi in due, che vengono ridivisi in due e così via) fino ad avere n variabili allocate corrispondenti agli n elementi dell'array.
dopo di ciò prende e comincia a fondere: risalendo "sull'albero" appena creato prende prima due elementi adiacenti, li ordine e li fonde, e così poi fa con tutti gli altri, e la stessa cosa fa con tutti gli array appena creati, e così via fino ad avere due unici array di dimensione n/2, già ordinati al loro interno, che vengono fusi ed ordinati...

il ragionamento - spero - sia questo.

c'è solo un problema: NON SO COSA SUCCEDE A LIVELLO DI CODICE.....

nel senso, non è che non riesco ad interpretare quanto scritto sopra, ma non ne riesco ad avere la visione d'insieme... e avrei bisogno che quale pia pia ma tanto pia persona mi dica, su un esempio, chessò, di un array di dimensione 5 o 6 cosa succeda passo passo ad ogni attivazione (naturalmente parlo del merge sort... la funzione leggi e stampa le so interpretare...).

mi sapreste aiutare? please...

grazie al santo/santi che mi daranno una mano
__________________
Acer 3820TG
Codice:
Ho venduto a: 23answer23, clamasa, salsero71, nik4, lollo_79, Star, krystis, tari80, BananaFlanders, froZZen, Perfavore83, Holy_knight; Ho comprato da: kikki2, ThE cX MaN, PantWeb, robby85, aldarev, markese, Drago, NLDoMy, Hells, Dragonx21, axlaxl, Homer314, e tanti tanti altri :)
casacup è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 08:09   #2
luxorl
Senior Member
 
L'Avatar di luxorl
 
Iscritto dal: Oct 2003
Città: Pisa/Cosenza
Messaggi: 1364
Qui trovi spiegazioni e esempio

http://it.wikipedia.org/wiki/Merge_sort
__________________
luxorl è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 11:18   #3
casacup
Senior Member
 
Iscritto dal: Feb 2006
Città: AQ
Messaggi: 2787
già visto... purtroppo l'articolo su wikipedia non risponde alla mia domanda, ovvero non spiega per bene cosa accade ad ogni attivazione...
__________________
Acer 3820TG
Codice:
Ho venduto a: 23answer23, clamasa, salsero71, nik4, lollo_79, Star, krystis, tari80, BananaFlanders, froZZen, Perfavore83, Holy_knight; Ho comprato da: kikki2, ThE cX MaN, PantWeb, robby85, aldarev, markese, Drago, NLDoMy, Hells, Dragonx21, axlaxl, Homer314, e tanti tanti altri :)
casacup è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 12:36   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Ma un compilatore per eseguire il debug passo passo no?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 12:48   #5
casacup
Senior Member
 
Iscritto dal: Feb 2006
Città: AQ
Messaggi: 2787
no...devo proprio capirlo per bene a livello teorico, per essere in grado poi di utilizzarlo per bene...
__________________
Acer 3820TG
Codice:
Ho venduto a: 23answer23, clamasa, salsero71, nik4, lollo_79, Star, krystis, tari80, BananaFlanders, froZZen, Perfavore83, Holy_knight; Ho comprato da: kikki2, ThE cX MaN, PantWeb, robby85, aldarev, markese, Drago, NLDoMy, Hells, Dragonx21, axlaxl, Homer314, e tanti tanti altri :)

Ultima modifica di casacup : 08-03-2007 alle 12:59.
casacup è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 13:19   #6
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da casacup Guarda i messaggi
no...devo proprio capirlo per bene a livello teorico, per essere in grado poi di utilizzarlo per bene...
Per capirlo a livello teorico ti basta studiare il merge sort su un qualunque manuale, se vuoi capire il funzionamento passo passo del codice (come chiedevi) ti serve un compilatore, una spiegazione a parole non farebbe altro che ricalcare il funzionamento dell'algoritmo scritto su qualunque manuale.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 13:33   #7
casacup
Senior Member
 
Iscritto dal: Feb 2006
Città: AQ
Messaggi: 2787
purtroppo sto studiando sul libro scritto dal prof... nel quale il merge è spiegato abbastanza bene, il merge sort invece non ha neanche una riga di spiegazione (riferendomi a quello riportato basato sugli indici)... ecco, in particolare è sugli indici che mi impiccio...
__________________
Acer 3820TG
Codice:
Ho venduto a: 23answer23, clamasa, salsero71, nik4, lollo_79, Star, krystis, tari80, BananaFlanders, froZZen, Perfavore83, Holy_knight; Ho comprato da: kikki2, ThE cX MaN, PantWeb, robby85, aldarev, markese, Drago, NLDoMy, Hells, Dragonx21, axlaxl, Homer314, e tanti tanti altri :)
casacup è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Nikon Comedy Wildlife 2025: le immagini ...
Il telescopio spaziale James Webb ha cat...
Tesla Roadster? Sam Altman chiede il rim...
Pier Giorgio Furcas raddoppia: Vice Dire...
Novità PagoPA: con Klarna:pagamen...
Per il 2026 la Cina eseguirà una ...
AMD mette in naftalina RDNA 1 ed RDNA 2?...
Blue Origin New Glenn: completato lo sta...
SpaceX risponde alla NASA sul lander lun...
Bitcoin compie 17 anni: il Whitepaper ch...
Attenzione agli HDD Western Digital Blue...
MacBook Air M4 a un super prezzo su Amaz...
Dal 12 novembre stretta sui siti porno: ...
Recensione Synology DS725+: tornano i di...
Car of the Year 2026, rivelate le 7 fina...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v