Divide-et-Impera

Referat
7/10 (1 vot)
Domeniu: Calculatoare
Conține 1 fișier: docx
Pagini : 6 în total
Cuvinte : 793
Mărime: 61.20KB (arhivat)
Publicat de: Denisa B.
Puncte necesare: 5

Extras din referat

Cerinta: Se dau n numere naturale. Să se afișeze al k-ulea cel mai mic element din șir.

Rezolvarea este compusa din doua functii importante, prima sorteaza crescator vectorul iar a doua cauta elementul de pe pozitia k.

Primul pas facut pentru rezolvarea problemei este definirea functiei de sortare. Pentru a aplica tehnica Divide et impera am folosit sortarea Mergesort deoarece din punct de vedere al complexitatii in cel mai rau caz aceasta metoda are O(nlogn) si functioneaza mai rapid pe vectori de dimensiuni mari. Dezavantajul este acela ca foloseste un vector auxiliar care scade eficienta din punct de vedere al memoriei.

Funcția de sortare:

- Am definit functia numita mergesort care returneaza vectorul sortat crescator:

merge_sort(st,dr)

- Se divide vectorul v de dimensiune n in doi vectori de dimensiune n/2 si definim mijlocul: mij =(st+dr)/2

- Se reapeleaza functia merge_sort pentru a cauta in prima jumatate de la stanga pana la mijloc: merge_sort(s,mij)

- Se reapeleaza functia merge_sort pentru a cauta in a doua jumatate de la mij+1 pana la dreapta: merge_sort(mij+1,dr)

- Se interclaseaza seubvectorii sortati prin apelarea functiei: interclasare(st,mij,dr)

Funcția de cautare binara:

Algoritmul de cautare binara foloseste doar etapa de Divide fara partea de recombinare a solutiilor deoarece imparte vectorul in doua jumatati de dimensiune n/2, fixeaza mijlocul iar apoi cauta doar intr-o secventa in functie de valoare mijlocului, reducand practic la jumatate numarul de operatii.

Pentru a cauta al k-ulea element in secventa v[st], v[st+1]...v[mij], v[mij+1]...v[n] a tabloului v, cat timp st <= dr, exista 3 cazuri:

 k = mij - am gasit elementul si returnam v[mij], este cazul cel mai favorabil;

 k < mij - cautam doar in secventa v[st] .v[mij-1];

 k > mij - cautam doar in secventa v[mij+1] .v[dr];

Preview document

Divide-et-Impera - Pagina 1
Divide-et-Impera - Pagina 2
Divide-et-Impera - Pagina 3
Divide-et-Impera - Pagina 4
Divide-et-Impera - Pagina 5
Divide-et-Impera - Pagina 6

Conținut arhivă zip

  • Divide-et-Impera.docx

Te-ar putea interesa și

Divide et Impera

1.1.Tema proiectului Sa se dezvolte o aplicatie realizata in Power Point care sa cuprinda informatii despre metoda “Divide et impera”.Aplicatia va...

Inteligență artificială - prolog

1) Introducere Inteligenta Artificiala 1.1 Ce este inteligenta artificiala? Inteligenţa artificială (IA) este inteligenta maşinii şi ramură a...

Metoda backtracking

METODA BACKTRACKING Tehnica folosita:Metoda Backtracking Aceasta tehnica se foloseste in rezolvarea problemelor care indeplinesc simulltan...

Divide et Impera

Divide et impera – sortari Prezentare generala Divide et impera este o tehnica speciala prin care se pot rezolva anumite probleme. Ideea de baza...

Algoritmica grafurilor

Capitolul 1 INTRODUCERE Pentru noţiunile din acest paragraf am consultat Behzad, Chartrand, Foster, Croitoru, Olaru, Tomescu. Alte completări...

Laborator SDA

LISTE SIMPLU ÎNLANTUITE 1. Continutul lucrarii În lucrare sunt prezentate operatiile importante asupra listelor simplu înlantuite si...

Structuri de Date și Algoritmi

1. Conceptul de dată În informatică, prin dată, se desemnează un model de reprezentare a informaţiei, model cu care se poate opera pentru a obţine...

Structuri de Date și Alogoritmi

EXTENSII ALE LIMBAJULUI C++ A. Operaţii de intrare-ieşire specifice limbajului C++ I. Noţiuni teoretice Limbajul C++ furnizează o bibliotecă...

Ai nevoie de altceva?