Пређи на садржај

БрзиОмотач

С Википедије, слободне енциклопедије

БрзиОмотач је метод налажења конвексног омотача коначног скупа тачака у равни. Користи подели па владај приступ сличан оном који се који се користи у Квиксорт алгоритам, одакле и добија своје име. Просечна сложеност овог алгоритма је О(н * лог(н)), а у најгорем случају је О(н2) (квадратна).

Алгоритам[уреди | уреди извор]

Кораци 1-2: Подела тачака на два скупа

Под просечним околностима алгоритам функционише прилично добро, али обрада се успорава у случајевима високе симетрије и уколико тачке леже на кружници. Алгоритам може да се растави на следеће кораке:

  1. Наћи тачке са минималном и максималном x координатом, оне морају бити део конвексног омотача;
  2. Формирати линију од те две тацке и искористити је да би се поделиле у два подскупа тацака које це се обрадити рекурзивно;
  3. Одредити тачку са једне стране линије са максималном раздаљином од линије. Две претходно одабране линије и ова нова сада формирају троугао;
  4. Тачке које се налазе у троуглу не могу бити део конвексног омотача те се игноришу у следећим корацима;
  5. Поновити претходна два корака над две линије које формирају троугао (не основном линијом);
  6. Наставити са тиме док не преостане висе тачака, рекурзија стигне до краја и тачке које смо одабирали не формирају конвексни омотач;
Кораци 3-5: Налажење тачке са највећом раздаљином и игнорисање тачака које се налазе у троуглу и понављање корака
Корак 6: Рекурзивно наставити алгоритам док нема више преосталих тачака

Референце[уреди | уреди извор]