Pagini recente » Diferente pentru utilizator/vanila_cpp intre reviziile 59 si 58 | Diferente pentru problema/cmap intre reviziile 5 si 4 | Diferente pentru problema/fear intre reviziile 1 si 2 | Atasamentele paginii Profil ccarapencea | Diferente pentru problema/mergesort intre reviziile 4 si 5
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="mergesort") ==
Marele Intelept a venit sa va explice algoritmul MergeSort. Algoritmul MergeSort este folosit pentru a sorta siruri. Acesta functioneaza in felul urmator: Fie functia recursiva $MergeSort(i,j)$ care sorteaza sirul pe intervalul $(i,j)$. La inceput se apeleaza functia $MergeSort(1,n)$ pentru a sorta tot vectorul. Functia $MergeSort(i,j)$ functioneaza in felul urmator: se determina mijlocul intervalulul $mij = (i + j) / 2$ si se apeleaza pe rand functiile $MergeSort(i,mij)$ si $MergeSort(mij + 1, j)$, dupa care cele $2$ siruri tocmai sortate se interclaseaza obtinandu-se sirul nostru sortat.
Marele Intelept a venit sa va explice algoritmul MergeSort. Algoritmul MergeSort este folosit pentru a sorta siruri. Acesta functioneaza in felul urmator: Fie functia recursiva $MergeSort(i,j)$ care sorteaza sirul pe intervalul $(i,j)$. La inceput se apeleaza functia $MergeSort(1,n)$ pentru a sorta tot vectorul. Functia $MergeSort(i,j)$ functioneaza in felul urmator: se determina mijlocul intervalulul $mij = (i + j) / 2$ si se apeleaza pe rand functiile $MergeSort(i,mij)$ si $MergeSort(mij + 1, j)$, dupa care cele $2$ siruri tocmai sortate se interclaseaza obtinandu-se sirul sortat intre pozitiile $i$ si $j$.
O calance a aprofundat acest algoritm si s-a decis sa faca urmatoarea optimizare: daca se apeleaza functia $MergeSort(i,j)$ iar sirul de la $i$ la $j$ este deja sortat atunci functia sa se opreasca. Mai exact daca se apeleaza functia $MergeSort(i,j)$, aceasta sa continuie doar daca sirul NU este sortat.
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.