Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import turtle
- import time
- Array = [7, 9, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2]
- x = -590
- y = -390
- Scr = turtle.Screen()
- Pointer = turtle.Turtle()
- Scr.setup(1200, 800)
- Pointer.hideturtle()
- Pointer.speed(-1)
- Pointer.penup()
- Pointer.goto(x, y)
- Pointer.pensize(2)
- Pointer.pendown()
- Pointer.color("white")
- def InsertionSort(Array):
- IterationCounter = 0
- for arrayPosition in range(1, len(Array)):
- actualElement = Array[arrayPosition]
- while arrayPosition > 0 and Array[arrayPosition - 1] > actualElement:
- Array[arrayPosition] = Array[arrayPosition - 1]
- arrayPosition -= 1
- Array[arrayPosition] = actualElement
- GenerateArray(Array, arrayPosition)
- time.sleep(1)
- IterationCounter += 1
- ResetScreen()
- GenerateArray(Array, None)
- PrintInteration(IterationCounter)
- return Array
- def Rectangle(xSize, ySize, FillColor):
- Pointer.pendown()
- Pointer.fillcolor(FillColor)
- Pointer.begin_fill()
- Pointer.forward(xSize)
- Pointer.left(90)
- Pointer.forward(ySize)
- Pointer.left(90)
- Pointer.forward(xSize)
- Pointer.left(90)
- Pointer.forward(ySize)
- Pointer.end_fill()
- Pointer.pendown()
- Pointer.left(90)
- def GenerateElement(n, l, m, FillColor):
- xSize = (1/l)*1000
- ySize = (n/m) * 500
- Rectangle(xSize, ySize, FillColor)
- def GenerateArray(Array, Position):
- m = max(Array)
- l = len(Array)
- for i in range(len(Array)):
- n = Array[i]
- if Position is None:
- Colour = "darkseagreen"
- else:
- if i == Position:
- Colour = "darksalmon"
- else:
- Colour = "grey"
- GenerateElement(n, l, m, Colour)
- Pointer.penup()
- Pointer.forward((1/l)*1050)
- Pointer.pendown()
- def ResetScreen():
- x = -590
- y = -390
- turtle.clearscreen()
- Pointer.hideturtle()
- Pointer.speed(-1)
- Pointer.penup()
- Pointer.goto(x, y)
- Pointer.pensize(2)
- Pointer.pendown()
- def PrintInteration(n):
- Pointer.color("black")
- Pointer.penup()
- TextString = str("Iterations: ") + str(n)
- Pointer.goto(-590, 310)
- Pointer.pendown()
- Pointer.write(TextString, font=("Highest Dafont", 50))
- try:
- InsertionSort(Array)
- turtle.mainloop()
- except:
- print("Window Closed!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement