← Hub

🍸 Cocktail Shaker

Eine Variation von Bubble Sort, die in beide Richtungen läuft. Wie ein Cocktail-Shaker wandert er von links nach rechts und wieder zurück.
Complexity
Zeit:O(n²)
Platz:O(1)
Code Snippet
let swapped = true;
let start = 0, end = n - 1;
while (swapped) {
  swapped = false;
  for (let i = start; i < end; ++i) {
    if (arr[i] > arr[i + 1]) {
      [arr[i], arr[i+1]] = [arr[i+1], arr[i]];
      swapped = true;
    }
  }
  if (!swapped) break;
  swapped = false;
  end--;
  for (let i = end - 1; i >= start; --i) {
    if (arr[i] > arr[i + 1]) {
      [arr[i], arr[i+1]] = [arr[i+1], arr[i]];
      swapped = true;
    }
  }
  start++;
}