Jarvis-algoritmen (eller Jarvis-traversal-algoritmen eller gaveindpakningsalgoritmen) bestemmer en sekvens af elementer i sættet , der danner et konveks skrog for dette sæt. Metoden kan forestilles som at vikle et sæt søm ind i et bræt med et reb. Algoritmen kører i tid , hvor er det samlede antal punkter på flyet, er antallet af punkter i det konvekse skrog.
Lad et sæt point gives . Det nederste punkt længst til venstre tages som startpunktet (det kan findes bag den sædvanlige passage gennem alle punkter), det er præcis toppen af det konvekse skrog. Det næste punkt ( ) er det punkt, der har den mindste positive polære vinkel i forhold til punktet som udgangspunkt. Derefter søges et sådant punkt for hvert punkt (2<i<=|P|) mod uret ved at finde forbi blandt de resterende punkter (+ det nederste venstre), hvori den største vinkel mellem linjerne og vil være dannet . Det bliver det næste hjørne af det konvekse skrog. I dette tilfælde søges ikke selve vinklen, men kun dens cosinus søges gennem skalarproduktet mellem strålerne og , hvor er det sidste minimum fundet, er det forrige minimum, og er kandidaten til det næste minimum. Det nye minimum vil være det punkt, hvor cosinus vil have den mindste værdi (jo mindre cosinus, jo større er dens vinkel). At finde spidserne af det konvekse skrog fortsætter indtil . I det øjeblik, når det næste punkt i det konvekse skrog falder sammen med det første, stopper algoritmen - det konvekse skrog er bygget.
Loop (4) udføres én gang, mens loop (a) udføres hver gang for . Alle andre operationer udføres i . Derfor virker algoritmen for eller i værste fald, når alle punkter falder ind i det konvekse skrog.