Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-09-2002, 20:10   #1
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 559
Algoritmo di ordinamento sto fondendo! :(

uff.... mi sapete segnalare una classe che qualcuno ha gia' fatto che mi ordina un certo numero di int dal piu' alto al + basso (o anke viceversa)?

thanks
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2002, 21:18   #2
paplo
Member
 
L'Avatar di paplo
 
Iscritto dal: Mar 2001
Città: Pordenone
Messaggi: 73
Ti propongo 3 algoritmi di ordinamento ...

Insertion sort (complessità O(n^2))
Quick sort (complessità O(n*logn))
Quinsort (booo)

//////// Insertion sort
public static int[] InsertionSort(int [] lista) {
for( int j = 1; j < lista.length; j++ ) {
int key = lista[ j ];
int i = j-1;
while( (i >= 0) && (lista[ i ] > key) ) {
lista[ i+1 ] = lista[ i ];
i = i-1;
}
lista[ i+1 ] = key;
}
return lista;
}


///////// Quick sort
public static int part (int[] lista, int a, int z)
{
int scambio;

//-------------------------------------------------------------
// Si assume che a sia inferiore a z.
//-------------------------------------------------------------
int i = a + 1;
int cf = z;

//-------------------------------------------------------------
// Inizia il ciclo di scansione dell'array.
//-------------------------------------------------------------
while (true)
{
while (true)
{
//-----------------------------------------------------
// Sposta i a destra.
//-----------------------------------------------------
if ((lista[i] > lista[a]) || (i >= cf))
{
break;
}
else
{
i++;
}
}
while (true)
{
//-----------------------------------------------------
// Sposta cf a sinistra.
//-----------------------------------------------------
if (lista[cf] <= lista[a])
{
break;
}
else
{
cf--;
}
}

if (cf <= i)
{
//-----------------------------------------------------
// è avvenuto l'incontro tra i e cf.
//-----------------------------------------------------
break;
}
else
{
//-----------------------------------------------------
// Vengono scambiati i valori.
//-----------------------------------------------------
scambio = lista[cf];
lista[cf] = lista[i];
lista[i] = scambio;

i++;
cf--;
}
}
//-------------------------------------------------------------
// A questo punto lista[a..z] è stata ripartita e cf è la
// collocazione di lista[a].
//-------------------------------------------------------------
scambio = lista[cf];
lista[cf] = lista[a];
lista[a] = scambio;

//-------------------------------------------------------------
// A questo punto, lista[cf] è un elemento (un valore) nella
// giusta posizione.
//-------------------------------------------------------------
return cf;
}

//-----------------------------------------------------------------
static int[] QuickSort (int[] lista, int a, int z)
{
int cf;

if (z > a)
{
cf = part (lista, a, z);
QuickSort (lista, a, cf-1);
QuickSort (lista, cf+1, z);
}

//-------------------------------------------------------------
// In Java, gli array sono oggetti, e come tali vengono passati
// per riferimento. Qui si restituisce ugualmente un
// riferimento all'array ordinato.
//-------------------------------------------------------------
return lista;
}


///////// Quinsort
public static int[] QuinsSort(int[] lista,int m){
int a=0;
int z=lista.length-1;
QuinsSort(lista,a,z,m);
return lista;
}
static int[] QuinsSort(int[] lista, int a, int z, int m){
int lenght=(z-a)+1;
if (lenght <= m){
InsertionSort(lista, a,z);
}
else{
int cf=part(lista, a,z) ;
QuinsSort(lista, a, cf-1,m);
QuinsSort(lista ,cf+1,z,m);
}
return lista;
}


public static int part (int[] lista, int a, int z)
{
int scambio;

//-------------------------------------------------------------
// Si assume che a sia inferiore a z.
//-------------------------------------------------------------
int i = a + 1;
int cf = z;

//-------------------------------------------------------------
// Inizia il ciclo di scansione dell'array.
//-------------------------------------------------------------
while (true)
{
while (true)
{
//-----------------------------------------------------
// Sposta i a destra.
//-----------------------------------------------------
if ((lista[i] > lista[a]) || (i >= cf))
{
break;
}
else
{
i++;
}
}
while (true)
{
//-----------------------------------------------------
// Sposta cf a sinistra.
//-----------------------------------------------------
if (lista[cf] <= lista[a])
{
break;
}
else
{
cf--;
}
}

if (cf <= i)
{
//-----------------------------------------------------
// è avvenuto l'incontro tra i e cf.
//-----------------------------------------------------
break;
}
else
{
//-----------------------------------------------------
// Vengono scambiati i valori.
//-----------------------------------------------------
scambio = lista[cf];
lista[cf] = lista[i];
lista[i] = scambio;

i++;
cf--;
}
}
//-------------------------------------------------------------
// A questo punto lista[a..z] è stata ripartita e cf è la
// collocazione di lista[a].
//-------------------------------------------------------------
scambio = lista[cf];
lista[cf] = lista[a];
lista[a] = scambio;

//-------------------------------------------------------------
// A questo punto, lista[cf] è un elemento (un valore) nella
// giusta posizione.
//-------------------------------------------------------------
return cf;
}

//-----------------------------------------------------------------


public static int[] InsertionSort(int[] lista,int a,int z) {

for( int j = 1+a; j < z+1; j++ ) {
int key = lista[ j ];
int i = j-1;
while( (i >= a) && (lista[ i ] > key) ) {
lista[ i+1 ] = lista[ i ];
i = i-1;
}
lista[ i+1 ] = key;
}
return lista;
}



Ciao,
Paplo
__________________
Età : 28 - Sviluppatore PHP
paplo è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2002, 22:40   #3
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
mi spieghi dove hai trovato il quinsort???
non l'ho mai sentito nominare...

come complessità dovrebbe essere simile al quicksort perché quando viene usato l'insertion sort questo è eseguito in O(m^2) che è pur sempre una costante.
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2002, 23:13   #4
paplo
Member
 
L'Avatar di paplo
 
Iscritto dal: Mar 2001
Città: Pordenone
Messaggi: 73
il quinsort è il nome che ho dato all'algoritmo che il prof. ci ha chiesto di implementare.

in poche parole ... per vettori di lunghezza minore di m arrestare l'esecuzione di quicksort ed aggiungere un'unica chiamata finale ad insertionsort.

la complessità non me la ricordo e adesso non ho proprio voglia di pensarci visto che domandi ho l'esame di algoritmi e strutture dati!

Ciao,
Paplo
__________________
Età : 28 - Sviluppatore PHP
paplo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Lasciate perdere i boomer su Facebook: i...
Robot aspirapolvere Dreame ed ECOVACS in...
Si può fare a meno delle GPU: que...
PC gaming e tuttofare Ryzen 9, 32GB di R...
MacBook Ultra: Apple ha scelto un unico ...
Nothing sta per lanciare il suo primo sm...
Drone DJI Lito 1 Combo, doppia batteria ...
Capcom vola e svela i piani futuri: Resi...
Microsoft aggiorna Windows 11: corretti ...
Silo continuerà, la quarta e ulti...
Da flop annunciato a sold out: Ferrari L...
Rocket Factory Augsburg ha riscontrato u...
Blue Origin sta ricostruendo e modifican...
BMW taglierà 8.000 posti di lavor...
7.600 annunci di nudify app su Meta, tut...
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: 08:15.


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