Bubble Sort

An intuitive, animated visualization of the Bubble Sort algorithm.

Algorithm Code

Time: O(n²) | Space: O(1)

1void bubbleSort(int arr[]) {
2  int n = arr.length;
3  for (int i = 0; i < n - 1; i++) {
4    for (int j = 0; j < n - i - 1; j++) {
5      if (arr[j] > arr[j + 1]) {
6        // Swap arr[j] and arr[j+1]
7        int temp = arr[j];
8        arr[j] = arr[j + 1];
9        arr[j + 1] = temp;
10      }
11    }
12  }
13}

Algorithm Steps

Step 1 of 51

1

Initial Array

The unsorted array.

2

Comparing

Comparing indices 0 and 1.

3

Swapping

Swapping 64 and 34.

4

Swapped

Swapped 64 and 34.

5

Comparing

Comparing indices 1 and 2.

6

Swapping

Swapping 64 and 25.

7

Swapped

Swapped 64 and 25.

8

Comparing

Comparing indices 2 and 3.

9

Swapping

Swapping 64 and 12.

10

Swapped

Swapped 64 and 12.

11

Comparing

Comparing indices 3 and 4.

12

Swapping

Swapping 64 and 22.

13

Swapped

Swapped 64 and 22.

14

Comparing

Comparing indices 4 and 5.

15

Swapping

Swapping 64 and 11.

16

Swapped

Swapped 64 and 11.

17

Comparing

Comparing indices 5 and 6.

18

Comparing

Comparing indices 0 and 1.

19

Swapping

Swapping 34 and 25.

20

Swapped

Swapped 34 and 25.

21

Comparing

Comparing indices 1 and 2.

22

Swapping

Swapping 34 and 12.

23

Swapped

Swapped 34 and 12.

24

Comparing

Comparing indices 2 and 3.

25

Swapping

Swapping 34 and 22.

26

Swapped

Swapped 34 and 22.

27

Comparing

Comparing indices 3 and 4.

28

Swapping

Swapping 34 and 11.

29

Swapped

Swapped 34 and 11.

30

Comparing

Comparing indices 4 and 5.

31

Comparing

Comparing indices 0 and 1.

32

Swapping

Swapping 25 and 12.

33

Swapped

Swapped 25 and 12.

34

Comparing

Comparing indices 1 and 2.

35

Swapping

Swapping 25 and 22.

36

Swapped

Swapped 25 and 22.

37

Comparing

Comparing indices 2 and 3.

38

Swapping

Swapping 25 and 11.

39

Swapped

Swapped 25 and 11.

40

Comparing

Comparing indices 3 and 4.

41

Comparing

Comparing indices 0 and 1.

42

Comparing

Comparing indices 1 and 2.

43

Swapping

Swapping 22 and 11.

44

Swapped

Swapped 22 and 11.

45

Comparing

Comparing indices 2 and 3.

46

Comparing

Comparing indices 0 and 1.

47

Swapping

Swapping 12 and 11.

48

Swapped

Swapped 12 and 11.

49

Comparing

Comparing indices 1 and 2.

50

Comparing

Comparing indices 0 and 1.

51

Sorted!

The array is fully sorted.

64
34
25
12
22
11
90
Array Size (n): 7
Comparing
Swapping
Sorted
Normal
Step 0 of 500%
0.25x4x