Diferente pentru problema/infasuratoare intre reviziile #12 si #13

Nu exista diferente intre titluri.

Diferente intre continut:

O alta prezentare a acestei probleme este aceea cand punctele nu sunt toate date deodata, iar fiecare punct este prezentat iterativ. Este destul de clar ca la oricare algoritm dintre cele prezentate pana acum mai apare un $N$ la complexitate, lucru care le face in mare parte ineficiente si inutile pentru problema aceasta
Un algoritm naiv cu complexitate $O(N*H)$ se poate realiza daca la fiecare aparitie a unui punct se verifica daca acesta este sau nu in poligon. Daca este in poligon nu mai trebuie modificat nimic. Daca nu atunci se cauta primul punct din poligon care unit cu punctul curent nu trece prin interiorul poligonului. Se determina toate aceste puncte si se scot din poligon, dupa care se introduce punctul nou in locul celor scoase.
O observatie matematica care ajuta la optimizarea acestui algoritm este faptul ca in functie de un punct din interiorul poligonului, varfurile par sa fie sortate in functie de unghi, si astfel cautarea unui punct care trebuie scos se reduce la o cautare binara de complexitate $O(Nlog{~2~}H)$. Secventa de puncte care trebuie scoase sunt un interval compact mereu si astfel dupa ce se gaseste primul punct se pot determina toate punctele care trebuie scoase in o singura parcurgere a lor. Dar acum mai trebuie o structura de date care permite stergere,inserare si cautare in $O(log~2~N)$. O astfel de structura de date este "Arborele Echilibrati de cautare":http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree, dar care spre norocul nostru sunt implementati deja in stl sub forma de "set-uri":http://www.sgi.com/tech/stl/set.html. O astfel de solutie are complexitate $O(Nlog{~2~}N)$.
Mai trebuie mentionat ca cea mai buna complexitate descoperita pana la momentul scrierii acestui articol este $O(Nlog{~2~}H)$.
Mai trebuie mentionat ca cea mai buna complexitate practica descoperita pana la momentul scrierii acestui articol este $O(Nlog{~2~}H)$, dar si aceasta complexitate teoretic este $O(Nlog~2~N)$.
== include(page="template/taskfooter" task_id="infasuratoare") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.