Bubble Sort VisualizerO(N²) Stable

Comparisons0
Swaps0
Accesses0
Step 1 / 0
45
[0]
18
[1]
72
[2]
9
[3]
34
[4]
88
[5]
23
[6]
56
[7]
12
[8]
65
[9]
Code Execution
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}
State Variables
i0
j0
n10
swappedfalse
Time: O(N²)Space: O(1)
LeetCode #912