Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-09-2007, 17:44   #1
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
[C] Help quicksort

Raga non riesco a capire quest'algoritmo
da quello che ho capito io, dato un vettore si sceglie un elemento pivot e in base a questo si opera l'ordinamento nei sottovettori creati dal pivot, prima si guarda nel sottovett di sinistra e se gli elementi sono minori del pivot si scorre +1 in avanti mentre se sono maggiori si scambia e si mette a destra, mentre per l'altro semivett si procede al contrario.


Mentre nel libro trovo scritto che dopo aver esaminato i semivett se l'indice della parte inf del blocco è <= all'indice dell'elem della parte superiore allora effettuo lo scambio tra i rispettivi vettori!
non capisco come mai <= e non >=


questo è un esempio dell'algoritmo che ho trovato in rete:


void sort(int array[], int begin, int end) {
int pivot, l, r;
if (end > begin) {
pivot = array[begin];
l = begin + 1;
r = end+1;
while(l < r)
if (array[l] < pivot)
l++;
else {
r--;
swap(array[l], array[r]);
}
l--;
swap(array[begin], array[l]);
sort(array, begin, l);
sort(array, r, end);
}
}



__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2007, 21:07   #2
Doriän
Member
 
L'Avatar di Doriän
 
Iscritto dal: Nov 2006
Messaggi: 71
Un'idea senza guardare troppo l'algoritmo...può darsi che sia per ordinare in ordine decrescente piuttosto che crescente?
Doriän è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2007, 22:06   #3
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Si fino a li ci sono
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2007, 10:47   #4
eliano
Senior Member
 
L'Avatar di eliano
 
Iscritto dal: Mar 2002
Città: Capua (CE)
Messaggi: 317
Esistono varie implementazioni del quicksort, ognuna ottimizzata per un caso particolare, quindi, a mio parere, dovresti controllare innanzitutto che la versione che hai riportato nel tuo post (che credo sia tratta da una pagina di wikipedia) sia identica a quella del tuo testo.
Guardando il codice che hai postato, e se ho capito bene la domanda, la spiegazione è nel funzionamento base dell'algoritmo: per poter effettuare lo scambio hai bisogno di avere contemporaneamente un elemento maggiore ed uno minore del pivot da scambiare tra loro.
La questione fondamentale è che l'algoritmo di base si preoccupa di creare due semivettori che contengano, rispettivamente, gli elementi maggiori e minori del pivot; nel codice postato viene scelto come pivot il primo elemento dell'array e il vettore viene diviso in due classi di elementi rispetto ad esso. Alla fine l'elemento pivot viene inserito nel giusto semivettore (fai attenzione alle condizioni di incremento di l e decremento di r) e si procede ricorsivamente sui due semivettori.
Sarebbe utile che tu facessi un pò di prove con carta e penna per capire il meccanismo di funzionamento dell'algoritmo: in particolare dovresti controllare alcuni casi limite appositamente costruiti.
__________________
Se pensi di sapere, sappi che non sai di non saperlo!
Le mie statistiche - "real man uses Duron!"
Ho fatto affari con: schumyFast, navale, The_Nameless_One, Sonic80, diamante.picci, Downset88, ilviandante, tecno789
eliano è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2007, 11:40   #5
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Si è vero quello del mio testo è diverso... è solo che non capivo bene i passaggi... lo scopo dell'algoritmo lo so, quello ch mi traeva in inganno è quella che avevo postato sopra:

Mentre nel libro trovo scritto che dopo aver esaminato i semivett se l'indice della parte inf del blocco è <= all'indice dell'elem della parte superiore allora effettuo lo scambio tra i rispettivi vettori!
non capisco come mai <= e non >=
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2007, 12:58   #6
Furla
Senior Member
 
Iscritto dal: Feb 2004
Messaggi: 1454
stiamo parlando di indici, è ovvio che se l'indice di sinistra è maggiore dell'indice di destra non effettui lo scambio perché si sono incontrati e i due sottoarray sono pronti alle due chiamate ricorsive; anche nella versione da te postata la condizione per procedere è è sinistra < destra.
Furla è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2007, 13:29   #7
Solido
Senior Member
 
L'Avatar di Solido
 
Iscritto dal: Jan 2004
Città: Figline(FI)
Messaggi: 5847
Quote:
Originariamente inviato da Furla Guarda i messaggi
stiamo parlando di indici, è ovvio che se l'indice di sinistra è maggiore dell'indice di destra non effettui lo scambio perché si sono incontrati e i due sottoarray sono pronti alle due chiamate ricorsive; anche nella versione da te postata la condizione per procedere è è sinistra < destra.




Infatti SINISTRA < DESTRA e nn viceversa e poi dice: 'indice della parte inf del blocco è <= all'indice dell'elem della parte superiore allora effettuo lo scambio tra i rispettivi vettori!... nn dovrebbe essere >=???
da quello che avevo capito io DEVE essere minore uguale
__________________
Ho concluso felicemente molte trattative su questo forum!
Solido è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Disastro Rad Power Bikes: incendio al ma...
Speciale Braun in offerta su Amazon: reg...
Threads cresce e batte X su mobile a liv...
Televisori, asse Sony - TCL: c’è ...
Uso del carbone in calo in Cina e India ...
Una potente tempesta solare colpisce la ...
Italo fa la storia: Starlink arriver&agr...
Windows 11: rilasciati i fix di emergenz...
MacBook Air M4 in offerta su Amazon: il ...
Smartphone Motorola potenti a prezzi mai...
Dopo Las Vegas, Sphere raddoppia: in Mar...
Smarthome Tapo: funzionano bene, costano...
Valve aggiorna le linee guida Steam: chi...
PC portatili sempre più cari: ecc...
Samsung TV in offerta su Amazon: Neo QLE...
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: 13:09.


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