Comb Sort

Improves on bubble sort by using a gap that shrinks by factor 1.3 each pass. Eliminates turtles (small values near end) much faster.

Best O(n log n) Avg O(n²/2^p) Worst O(n²) Space O(1) Stable No In-place Yes Comparison-based

How it works

Improves on bubble sort by using a gap that shrinks by factor 1.3 each pass. Eliminates turtles (small values near end) much faster.

Implementation

function combSort(arr) {
  let gap = arr.length, swapped = true;
  while (gap > 1 || swapped) {
    gap = Math.max(1, Math.floor(gap / 1.3));
    swapped = false;
    for (let i = 0; i + gap < arr.length; i++) {
      if (arr[i] > arr[i + gap]) {
        [arr[i], arr[i+gap]] = [arr[i+gap], arr[i]];
        swapped = true;
      }
    }
  }
}