Bubble Sort Step-by-Step Visualization

Loading...

Loading video...

Pro
0:00 / 0:00

Bubble Sort Animation Specification (Defaults)

1. Overview

  • Purpose: Visually demonstrate the Bubble Sort algorithm step‑by‑step, highlighting comparisons, swaps, and the progression of sorted elements.
  • Target Audience: Students learning basic sorting algorithms.
  • Runtime: Approximately 30 seconds.

2. Data Setup

  • Array Size: 10 elements.
  • Initial Values: Random integers between 1 and 20 (e.g., [12, 5, 17, 3, 9, 14, 2, 11, 6, 8]).
  • Representation: Vertical bars whose heights correspond to the element values.

3. Visual Elements

Element Shape Color (default) Description
Unsorted bar Rectangle GRAY (#7f8c8d) All bars at start.
Currently compared bars Rectangle RED (#e74c3c) Two adjacent bars being compared.
Swapped bars Rectangle GREEN (#27ae60) Bars that have just been swapped (brief flash).
Sorted portion Rectangle BLUE (#2980b9) Bars that are confirmed in final position (right‑most part of array).
Background BLACK (#2c3e50) Full scene background.
Pseudocode panel Text box WHITE text on DARK_GRAY (#34495e) background Shows Bubble Sort pseudocode with the current line highlighted in YELLOW.
Loop counters Text WHITE Displays i (outer loop) and j (inner loop) values above the array.

4. Layout

  • Scene Size: 16:9 aspect ratio (1920 × 1080).
  • Array Position: Center‑bottom of the frame, bars spaced evenly.
  • Pseudocode Panel: Left side of the screen, vertically centered.
  • Counters: Small text above the array, aligned left for i and right for j.

5. Animation Sequence & Timing

Step Action Duration Notes
1 Title fade‑in: "Bubble Sort Visualization" 2 s Title appears, then fades out.
2 Display initial array bars 1 s Bars grow from height 0 to their values.
3 Show outer loop counter i = 0 0.5 s Counter appears.
4 For each inner loop iteration (j):
‑ Highlight two bars in RED
‑ Pause 0.4 s
‑ If swap needed, animate swap (bars slide horizontally) with GREEN flash
0.5 s per comparison, 0.8 s per swap The inner loop runs n‑i‑1 times.
5 After inner loop completes, color the last sorted bar BLUE and decrement the active range. 0.6 s Update i counter.
6 Repeat steps 3‑5 for all outer loop passes until array sorted. Total passes = n‑1.
7 Final highlight: all bars BLUE, display "Sorted!" text. 2 s Fade‑out of counters and pseudocode.
8 Summary screen: total comparisons, total swaps, time‑complexity O(n^2). 3 s Text on dark background.

6. Pseudocode Highlighting

1  for i in range(0, n-1):
2      for j in range(0, n-i-1):
3          if A[j] > A[j+1]:
4              swap A[j], A[j+1]
  • The line corresponding to the current operation is highlighted in YELLOW.
  • When a comparison occurs, line 2 is highlighted; when a swap occurs, line 4 is highlighted.

7. Camera

  • Static camera throughout the animation (no zoom or pan). The view comfortably fits the entire array and pseudocode panel.

8. Audio / Voice‑over (Placeholders)

  • Insert placeholder markers for optional narration:
    • [[VO: Comparing A[j] and A[j+1]]]
    • [[VO: Swapping elements]]
    • [[VO: Pass i completed, largest element placed at position n-i-1]]

9. Export Settings

  • Resolution: 1920 × 1080 (16:9).
  • Frame Rate: 30 fps.
  • File Format: MP4 (H.264).

10. Implementation Notes (Manim Community Edition)

class BubbleSortScene(Scene):
    def construct(self):
        # 1. Setup data
        values = [12, 5, 17, 3, 9, 14, 2, 11, 6, 8]
        n = len(values)
        # 2. Create bars
        bars = VGroup(*[Rectangle(height=v, width=0.5, fill_color=GRAY, fill_opacity=1) 
                        for v in values])
        bars.arrange(RIGHT, buff=0.2).to_edge(DOWN, buff=1)
        # 3. Add pseudocode text
        code = Code(...).to_edge(LEFT, buff=1)
        # 4. Add counters
        i_counter = Text("i = 0").to_edge(UP, buff=0.5).align_to(bars, LEFT)
        j_counter = Text("j = 0").to_edge(UP, buff=0.5).align_to(bars, RIGHT)
        # 5. Animation loops (use self.play with Transform, Indicate, etc.)
        #    Follow the timing table above.

The actual implementation can follow the timing and color changes described above.

Created By

Kang Liang (tiga)Kang Liang (tiga)

Description

An engaging 30‑second animation demonstrates the Bubble Sort algorithm on a ten‑element array. Vertical bars represent values, with red highlighting for each comparison, green flashes for swaps, and blue indicating sorted elements. Loop counters i and j and a side panel show the pseudocode, highlighting the active line in yellow. The scene progresses through each pass, ending with a “Sorted!” message and a summary of comparisons, swaps, and O(n²) complexity.

Created At

Dec 29, 2025, 07:37 AM

Tags

bubble-sortsorting-algorithmsalgorithm-visualization

Status

Completed
AI Model
openai/gpt-oss-120b