Pagini recente » Diferente pentru utilizator/cos_min intre reviziile 40 si 39 | Diferente pentru problema/hoata2 intre reviziile 21 si 20 | Diferente pentru problema/damesah intre reviziile 35 si 34 | Diferente pentru utilizator/florian intre reviziile 59 si 58 | Diferente pentru problema/sortare intre reviziile 16 si 15
Nu exista diferente intre titluri.
Diferente intre continut:
Cazul de baza a unei recursivitati sunt listele de dimensiune $0$ sau $1$. Putem implementa in pseudocod acest algoritm astfel:
==code(c)|functie qsort(sir[])
==code(cpp)|function qsort(sir[])
var stanga[], dreapta[], pivot
daca lungimea(sir) <= 1
returneaza sir
if lungime(sir) <= 1
return sir
pivot = un element din sir
pentru fiecare x din sir
daca x < pivot atunci insereaza x in stanga
daca x > pivot atunci insereaza x in dreapta
returneaza concatenaeza(qsort(stanga), pivot, qsort(dreapta))
for each x in sir
if x < pivot then insereaza x in stanga
if x > pivot then insereaza x in dreapta
return concatenaeza(qsort(stanga), pivot, qsort(dreapta))
==
Fumeanu a implementat acest algoritm si considera ca implementarea lui este foarte eficienta. Nargy este mai intelept si isi da seama ca performanta intregului algoritm depinde de modul in care se selecteaza pivotul. Metoda folosita de Fumeanu este urmatoarea: pentru un sir de lungime $i$ el alege mediana elementelor de pe pozitiile $A{~i~}, B{~i~}$ si $C{~i~}$ (mediana reprezinta elementul mijlociu ca marime dintre cele $3$).
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.