This solution is generated by ChatGPT, correctness is not guaranteed.

AI solution for JavaScript Coding Question on BFE.dev
40. implement Bubble Sort

Solution:

Bubble sort works by repeatedly swapping adjacent elements if they are in the wrong order. The algorithm repeats this process until no more swaps are needed, indicating that the array is sorted.

Here is the JavaScript implementation of Bubble Sort:

function bubbleSort(arr) {
  let len = arr.length;
  let swapped;

  do {
    swapped = false;
    for (let i = 0; i < len - 1; i++) {
      if (arr[i] > arr[i + 1]) {
        let temp = arr[i];
        arr[i] = arr[i + 1];
        arr[i + 1] = temp;
        swapped = true;
      }
    }
  } while (swapped);

  // no need to return anything, it sorts in-place
}

const arr = [5, 3, 1, 4, 6];
bubbleSort(arr);
console.log(arr); // [1, 3, 4, 5, 6]

The time cost for Bubble Sort is O(n^2) for the average and worst case. This is because in the worst case scenario, we need to iterate through the entire array n times, resulting in n * (n-1) comparisons and swaps.

Bubble Sort is a stable sorting algorithm, meaning that it maintains the relative order of equal elements in the sorted array.