Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air combina diverse carte molto interessanti: un OLED PaperMatte da 12 pollici, un corpo sottile e una tastiera molto comoda. Durante la prova abbiamo apprezzato fluidità, audio e comfort visivo, mentre i test hanno chiarito pregi e qualche limite nelle prestazioni. L'autonomia ha convinto anche nell'uso intermittente; la scelta passa dalla compatibilità delle proprie app e dal valore del pacchetto con accessori, proposto a 749 euro
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-05-2005, 20:28   #1
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
[C]-Problema Quick sort

Salve a tutti....
Chi mi aiuta con questo pezzo di codice che non riesco a far funzionare?
Si tratta del quick sort...e si blocca in esecuzione
Codice:
void Quick(int v[],int sx,int dx)
{
     int pivot=v[(sx+dx)/2];
     int isx=sx;
     int idx=dx;
     while(sx<=dx) {
                   while(v[isx]<pivot) isx++;
                   while(v[idx]>pivot) idx--;
                   if(isx<=idx) {
                                Scambia(v[isx],v[idx]);
                                isx++;
                                idx--;
                                }
                   }
     if(sx<idx) Quick(v,sx,idx);
     if(isx<dx) Quick(v,isx,dx);
return;
}
Inoltre, come potrei modificarlo per far ordinare un vettore in modo decrescente?
Grazie in anticipo
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 06:13   #2
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
up..
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 08:59   #3
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
puoi mettere anche la funzione scambia??
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 09:38   #4
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Quote:
Originariamente inviato da -Yara-
Codice:
while(sx<=dx)
Casomai, "while (isx<=idx)".
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 09:51   #5
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
Quote:
Originariamente inviato da Ziosilvio
Casomai, "while (isx<=idx)".
ecco hai ragione.

yara mannaggia a te e chi te fa programmà
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 13:53   #6
-Yara-
Senior Member
 
L'Avatar di -Yara-
 
Iscritto dal: Nov 2003
Città: Pordenone - Tarvisio
Messaggi: 2451
Quote:
Originariamente inviato da ghiotto86
ecco hai ragione.

yara mannaggia a te e chi te fa programmà
è colpa del mio Proff che fa casino
Oggi m'ha fatto fare la Torre di Hanoi...che due palle....vabbè torno a studiarmi actionscript va'..senno' cado in depressione
Grazie dell'aiuto
__________________
Me? The Chosen One? They chose me, and i didn't even graduate from fuckin' high school
Wind FTTE Vula 100/20 - Stats
Retelit / Valcanale 20Mbit/2Mbit // Wind 100/20+Wind4G con EdgerouterX
-Yara- è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 13:59   #7
ghiotto86
Senior Member
 
L'Avatar di ghiotto86
 
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
mai fidarsi dei prof.
ghiotto86 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 15:53   #8
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Adesso che ci penso...
Quote:
Originariamente inviato da -Yara-
[code]Scambia(v[isx],v[idx])
Casomai, "Scambia(v+isx,v+idx)", o "Scambia(v,isx,idx)", o al limite "Scambia(&v[isx],&v[idx])"...
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 16:12   #9
3nigma666
Senior Member
 
L'Avatar di 3nigma666
 
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
Uhmm secondo me il tuo algoritmo non è tanto efficiente,non rispetta la complessita di =(nlong) me è superiore.non ti conviene fare cosi:

Codice:
//--------------------------------------------------------------------------------
// Name  :  swap(long& a, long& b)
// Desc  :  Questa funzione implementa lo scambio dei valori con 
//          la tecnica inplace, ovverosia senza alcuna variabile di supporto
//          Si noti che i parametri sono passati per riferimento, altrimenti 
//          le modifiche sarebbero effettuate su copie di essi, e lo scambio di valore non ci sarebbe.
//          ^= è il simbolo di Xor. Eseguo un Xor per scambiare i valori
// ToDo  :  Nulla  :D
// Vers  :  1.0
//----------------------------------------------------------------------------------------

void swap (long& a, long& b) {
	a ^= b ^= a ^= b; //Metodo inplace per scambiare i valori di a e b
};

////////////////////////////////////////////////////////////////////////////////
//                              QUICKSORT
////////////////////////////////////////////////////////////////////////////////

//-----------------------------------------------------------------------
// Name  :  Partition 
// Desc  :  Prende come parametri puntatore ad un vettore, indice sinistro ,indice destro
//          Inizia a scorrerre il vettore partendo da fuori il vettore
//          e inizia un loop ke continua fino a quando l'indice sx è minore dell'indice dx
//          Dentro al loop viene fatto scorrere il vettore e ogni singolo elemento del vettore
//          viene confrontato con il pivot e se maggiore viene messo a dx se inferiore viene
//          posizionato a sx tramite la funzione swap
// ToDo :   Nulla
// Vers :   1.0
// Bugs :   N.P.
//-----------------------------------------------------------------------------------------

int Partition (long* vett,int left,int right){
     pivot = vett[left];//a pivot assegno il primo elemento
     i = left - 1 ;    //inizio da fuori il vettore
     j = right + 1;   //inizio da fuori il vettore
    //fino a quando l indice inferiore non supera l indice superiore continua a cercare gli elementi 
    while (i < j){
		do{j--;} //decrementa di una posizione l'indice superiore
		while (vett[j]>pivot); //continua a decrementare fino a quando l elemento trovato nn è maggiore del pivot
		do{
            i++;
        }while (vett[i]<pivot);//continua a decrementare fino a quando l elemento trovato nn è minore del pivot
		if (i<j)
			swap(vett[i],vett[j]);//inverti i due valori
        else                  
           return j;// se i ha superato j ritorno il nuovo pivot a Qsort
     }//end while
}//end partition                                 

//-------------------------------------------------------------
// Name  :  QuickSort
// Desc  :  Assegna un valore a al pivot q.la funzione richiama se stessa
//          ricorsivamente passandosi prima l'albero di dx e poi quello di sx
// ToDO  :  Nulla :D
// Vers  :  1.0
// Bugs  :  N.P
//-----------------------------------------------------------

void QuickSort (long* vett,int left,int right){
     if (left < right){
              q = Partition (vett,left,right); //Assegnazione pivot
              QuickSort(vett,left,q);//albero di sinistra
              QuickSort(vett,q+1,right);//albero di destra
              }//end if

}//end quicksort
cosi è perfetto come complessità,anke perke a mio parere non è ottimale come soluzione prendere il pivot come centro del vettore (non ke cambi molto in termini di prestazioni) però..
3nigma666 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 16:46   #10
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Quote:
Originariamente inviato da 3nigma666
Uhmm secondo me il tuo algoritmo non è tanto efficiente,non rispetta la complessita di =(nlong) me è superiore
La complessita' asintotica dell'implementazione del Quicksort proposta da -Yara- e' O(n log n) nel caso medio e O(n^2) nel caso peggiore.
La complessita' asintotica dell'implementazione del Quicksort proposta da te e' O(n log n) nel caso medio e O(n^2) nel caso peggiore.

Quote:
Codice:
swap(long& a, long& b)
Questo e' codice C++. Qui invece si chiede aiuto su un programma C.

Quote:
Codice:
a ^= b ^= a ^= b; //Metodo inplace per scambiare i valori di a e b
Questo trucco funziona solo con variabili di tipo intero.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2005, 18:19   #11
3nigma666
Senior Member
 
L'Avatar di 3nigma666
 
Iscritto dal: Jan 2005
Città: A casa mia
Messaggi: 825
per quanto riguarda la complessita del codice hai ragione, è O(nlong) in entrambi i casi ,il suo codice è correttamente scritto.
Per quanto riguarda lo swap mi tocca mentire,ho personalmente presentato un progetto con quella funzione swap cosi come l'ho definita nel mio post applicata a numeri sia float,sia double, senza avere problemi.
3nigma666 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2005, 09:15   #12
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16215
Quote:
Originariamente inviato da 3nigma666
ho personalmente presentato un progetto con quella funzione swap cosi come l'ho definita nel mio post applicata a numeri sia float,sia double, senza avere problemi.
Se non ci sono stati problemi, allora il tuo compilatore te l'ha permesso: buono a sapersi, perché comunque è una cosa comoda.
L'Appendice A del K&R dice però esplicitamente che gli operatori bit-a-bit sono definiti solo su variabili di tipo intero, quindi quella che hai usato non è una caratteristica del linguaggio. Sarebbe interessante vedere se le cose sono cambiate in C99, di cui però so poco o nulla...
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Chi scherza col fuoco si brucia.
Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici
REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2005, 11:12   #13
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 3nigma666
void swap (long& a, long& b) {
a ^= b ^= a ^= b; //Metodo inplace per scambiare i valori di a e b
};
Alla fine apposggiarsi su un registro è molto piu veloce (circa 3x). Questo era un truchetto che era utile quando si aveva poca memoria.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
I nuovi Xreal 1 Pro+ arrivano in Europa ...
La GeForce RTX 5090 non è morta: ...
HONOR Win2 si mostra online: potenza da ...
Clamoroso dietrofront di Sony: cancellat...
GeForce NOW, tante novità con l'u...
Il mercato smartphone rallenta nel Q3 20...
Addio al Valve Index: fine della produzi...
Seggiolini auto i-Size da 0 a 12 anni in...
Amazon determina i prezzi di tutto il we...
Robot aspirapolvere ECOVACS in offerta s...
Bodywel F20PRO o DEEPOWER A5? Due fat bi...
Gli agenti AI non diventano pazzi, sono ...
Kenwood Chef XL 6,7L a 239€ su Amazon: u...
Sconto al check-out a sorpresa: Smart TV...
Prima guida con GAC Aion V: interni prem...
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: 17:18.


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