Pages: [1]   Go Down
Print
Author Topic: Algoritmi di ordinamento  (Read 1237 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« on: 01-06-2009, 08:14:01 »

Salve ragazzi, volevo chiedervi una cosa rispetto all'algoritmo di ordinamento quicksort.
Volevo chiedervi se potevate spiegarmi quale cambiamento dovrebbe essere fatto per ottenere un ordinamento in senso decrescente (non riesco a capire qual'è la condizione da cambiare).
Grazie.
Logged
TheSpecialOne
Apprendista Forumista
**
Offline Offline

Posts: 232



« Reply #1 on: 01-06-2009, 08:44:45 »

penso basti invertire la condizione di swap
ad esempio al posto di mettere if (A > A[j]), metti la condizione opposta
puoi crearti un metodo apposito, e utilizzarlo all'interno dell'algoritmo
Logged
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #2 on: 01-06-2009, 08:51:24 »

Ciao, puoi fare per favore un esempio?
Logged
TheSpecialOne
Apprendista Forumista
**
Offline Offline

Posts: 232



« Reply #3 on: 01-06-2009, 09:31:37 »

Ciao, puoi fare per favore un esempio?

allora, tu hai all'interno dei 2 for, la chiamata di swap
puoi provare a creare un nuovo metodo, lo chiami swapDecr x esempio

Code:
public void swapDecr (int x, int y)
{
        if (x<y)
        {
                int temp=y;
                y=x;
                x=temp;
        }
}

è codice da prendere con le molle, in quanto l'ho fatto sul momento!
Cmq dovrebbe scambiare 2 elementi al contrario, supponendo che x<y nella condizione, fà lo scambio
e mette ad x il valore di y, che era piu grande!
Logged
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #4 on: 01-06-2009, 16:25:15 »

qualcun'altro propone diversamente?
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #5 on: 01-06-2009, 16:38:52 »

Si... ordini con il quicksort normale e poi capovolgi l'array.
Dato che  O(n)+O(nlogn)=O(nlogn) non cambia niente :-D
(scherzavo, cambia la condizione)
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
Pages: [1]   Go Up
Print
Jump to: