DEV Community

manulangat1
manulangat1

Posted on

1 1

Visualizing insertion Sort in python using pygame

This is the second part of my series... Visualizing Sorting algorithms in python.
In this second part, we are going to talk about insertion sort. This is a simple sorting algorithm that works like a deck of cards.

Now to the juicy part. Head per to your terminal and navigate to your desired directory.

cd Desktop && mkdir visuals && cd visuals

Once in the visuals directory, open vs code

code . 

Create and activate the virtual environment by

python3 -m virtualenv venv && source venv/bin/activate

Install pygame using pip

pip install pygame

Create a file named insertion.py

touch insertion.py

Now to the juicer part... Implementing the fleshy part

import pygame
import random
pygame.init()
import numpy as np
win = pygame.display.set_mode((800,800))
pygame.display.set_caption("Bubble sort")
x,y = 40,40
width = 20 

height = [ np.unique(random.randint(0,600)) for i in range(30)]

run = True 

def show(height):
    for i in range(len(height)):
        pygame.draw.rect(win,(74,192,200),(x + 30 * i,y,width,height[i]))

while run:
    execute = False
    pygame.time.delay(10)
    keys = pygame.key.get_pressed()

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    if keys[pygame.K_SPACE]:
        execute = True 
    if execute == False:
        win.fill((0,0,0))
        show(height)
        pygame.display.update()
    else:
        for i in range(0,len(height)-1):
            while height[i] > height[i+1] and i >= 0:
                height[i],height[i+1] = height[i+1],height[i]
                i -= 1
                show(height)
                pygame.time.delay(50)
                pygame.display.update()

I do hope that you have learnt a thing or two today. Will truly appreciate if you, yes you follow me on Github link
I will honestly appreciate code reviews and constructive criticism, Till next time...

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay