Jarvis-algoritmen (eller Jarvis-traversalalgoritmen, eller presentinpackningsalgoritmen) bestämmer en sekvens av element i uppsättningen som bildar ett konvext skrov för denna uppsättning. Metoden kan föreställas som att linda en uppsättning spikar inslagna i en bräda med ett rep. Algoritmen körs i tiden , där är det totala antalet punkter på planet, är antalet punkter i det konvexa skrovet.
Låt en uppsättning poäng ges . Den nedersta punkten längst till vänster tas som den initiala punkten (den kan hittas bakom den vanliga passagen genom alla punkter), det är exakt toppen av det konvexa skrovet. Nästa punkt ( ) är den punkt som har den minsta positiva polära vinkeln i förhållande till punkten som origo. Därefter, för varje punkt (2<i<=|P|) moturs, söker man efter en sådan punkt genom att hitta bortom bland de återstående punkterna (+ den lägsta vänstra), där den största vinkeln mellan linjerna och kommer att vara bildas . Det blir nästa hörn av det konvexa skrovet. I det här fallet söks inte själva vinkeln, utan endast dess cosinus söks genom skalärprodukten mellan strålarna och , där är det senast hittade minimumet, är det föregående minimumet och är kandidaten för nästa minimum. Det nya minimumet kommer att vara den punkt där cosinus kommer att ta det minsta värdet (ju mindre cosinus, desto större vinkel). Att hitta hörnen på det konvexa skrovet fortsätter tills . I det ögonblicket, när nästa punkt i det konvexa skrovet sammanfaller med det första, stannar algoritmen - det konvexa skrovet byggs.
Loop (4) kommer att exekveras en gång, medan loop (a) exekveras varje gång för . Alla andra operationer utförs i . Därför fungerar algoritmen för eller i värsta fall, när alla punkter faller in i det konvexa skrovet.