Základní ideou Comb sortu je eliminace „želv“ (tj. malé hodnoty na konci seznamu), protože želvy v bublinkovém řazení zpomalují proces řazení (způsobují mnoho výměn porovnávaných prvků). Tzv. „králíci“, tedy velké hodnoty na začátku seznamu, nejsou v algoritmu comb sortu nijak řešeni, protože v bublinkovém řazení nepředstavují problém.
V bubble sortu mají dva porovnávané elementy mezi sebou mezeru o velikosti jedna. Základní myšlenkou comb sortu je, že tato mezera může být volena podstatně vyšší než jedna (Shellovo řazení je také založeno na této myšlence, ale je modifikací řazení vkládáním, spíše než bublinkového řazení).
function combsort(array input)
gap := input.size //inicializace velikosti mezery
shrink := 1.3 //nastavení mezery zmenšovacího faktoruloop until gap = 1 and swapped = false
//aktualizace mezery pro další comb. Příklad níže
gap := int(gap / shrink)
if gap < 1
//minimální mezera je 1
gap := 1
end if
i := 0
swapped := false //pro vysvětlení se podívejte na bubblesort //jednotlivý "comb" přes vstupní seznamloop until i + gap >= input.size //podívejte se na shell sort na podobnou myšlenkuif input[i] > input[i+gap]
swap(input[i], input[i+gap])
swapped := true // Došlo k výměně, takže seznam// není zaručeně seřazenýend if
i := i + 1
end loop end loopend function