1function bubbleSort(arr) {
2 let n = arr.length;
3 let swapped = false;
4 // Loop through array passes
5 for (let i = 0; i < n - 1; i++) {
6 swapped = false; // Reset pass flag
7 // Compare adjacent elements
8 for (let j = 0; j < n - i - 1; j++) {
9 // Check if left > right
10 if (arr[j] > arr[j + 1]) {
11 // Swap adjacent elements in place
12 [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
13 swapped = true;
14 }
15 }
16 // Stop early if no swaps occurred
17 if (!swapped) break;
18 }
19 return arr; // Fully sorted!
20}