BrziOmotač
Изглед
Овај чланак је започет или проширен кроз пројекат семинарских радова. Потребно је проверити превод, правопис и вики-синтаксу. Када завршите са провером, допишете да након |проверено=. |
BrziOmotač je metod nalaženja konveksnog omotača konačnog skupa tačaka u ravni. Koristi podeli pa vladaj pristup sličan onom koji se koji se koristi u Kviksort algoritam, odakle i dobija svoje ime. Prosečna složenost ovog algoritma je O(n * log(n)), a u najgorem slučaju je O(n2) (kvadratna).
Algoritam
[уреди | уреди извор]Pod prosečnim okolnostima algoritam funkcioniše prilično dobro, ali obrada se usporava u slučajevima visoke simetrije i ukoliko tačke leže na kružnici. Algoritam može da se rastavi na sledeće korake:
- Naći tačke sa minimalnom i maksimalnom x koordinatom, one moraju biti deo konveksnog omotača;
- Formirati liniju od te dve tacke i iskoristiti je da bi se podelile u dva podskupa tacaka koje ce se obraditi rekurzivno;
- Odrediti tačku sa jedne strane linije sa maksimalnom razdaljinom od linije. Dve prethodno odabrane linije i ova nova sada formiraju trougao;
- Tačke koje se nalaze u trouglu ne mogu biti deo konveksnog omotača te se ignorišu u sledećim koracima;
- Ponoviti prethodna dva koraka nad dve linije koje formiraju trougao (ne osnovnom linijom);
- Nastaviti sa time dok ne preostane vise tačaka, rekurzija stigne do kraja i tačke koje smo odabirali ne formiraju konveksni omotač;
Reference
[уреди | уреди извор]- Barber, C. Bradford; Dobkin, David P.; Huhdanpaa, Hannu (1. 12. 1996). „The quickhull algorithm for convex hulls” (PDF). ACM Transactions on Mathematical Software. 22 (4): 469—483. doi:10.1145/235815.235821.