O imbunatatire la algoritmul lui Andrew: gasim cele 4 puncte ce reprezinta extremele pe ambele axe (xmin, xmax, ymin, ymax) si eliminam toate punctele din interiorul patrulaterului determinat de acestea. Sortam punctele ramase si de aici algoritmul ramane neschimbat. In acest fel complexitatea devine O(nlog(nr)) unde nr reprezinta numarul de puncte din afara patrulaterului mentionat.
Diferenta de timp nu e extrem de mare, insa mi s-a parut o idee interesanta

.
Un exemplu de implementare
http://www.infoarena.ro/job_detail/1410636