Back

Insertion sort - Answers

Here are some different versions of the insertion sort program, which you can copy and paste straight into Python.

VERSION 1

import random

myArray = [] # create an empty list
size = int(input('How many data items? >>> ')) # ask for the size required
for i in range(size): # for i= 0 to (size-1)
    myArray.append(random.randint(1,500)) # get a random number and append it

print('Unsorted list:')
for i in range(len(myArray)): # for i= 0 to (size-1)
    print(myArray[i],end=' ')

for j in range(1,len(myArray)):
    key = myArray[j]
    i = j - 1
    while i >= 0 and myArray[i] > key:
        myArray[i + 1] = myArray[i]
        i = i-1
        myArray[i+1] = key

print('\nSorted list:')
for i in range(len(myArray)): # for i= 0 to (size-1)
    print(myArray[i],end=' ')

 

VERSION 2

##import random
##
##myArray = [] # create an empty list
##size = int(input('How many data items? >>> ')) # ask for the size required
##for i in range(size): # for i= 0 to (size-1)
## myArray.append(random.randint(1,500)) # get a random number and append it

myArray=["adder", "zebra", "lion", "rat", "koala bear", "monkey", "shark", "ant"]

print('Unsorted list:') 
for i in range(len(myArray)): # for i= 0 to (size-1)
    print(myArray[i],end=' ')

for j in range(1,len(myArray)):
    key = myArray[j]
    i = j - 1
    while i >= 0 and myArray[i] > key:
        myArray[i + 1] = myArray[i]
        i = i-1
        myArray[i+1] = key

print('\nSorted list:') 
for i in range(len(myArray)): # for i= 0 to (size-1)
    print(myArray[i],end=' ')

 

VERSION 3

import random

#This code creates a list of random numbers
myArray = [] # create an empty list
size = int(input('How many data items? >>> ')) # ask for the size required
for i in range(size): # for i= 0 to (size-1)
    myArray.append(random.randint(1,500)) # get a random number and append it to the list

#This function prints out the list.
def printArray(anyArray):
    for i in range(len(anyArray)): # for i= 0 to (size-1)
        print(anyArray[i],end=' ')
    print('\n')10

for j in range(1,len(myArray)):
    key = myArray[j]
    i = j - 1
    while i >= 0 and myArray[i] > key:
        myArray[i + 1] = myArray[i]
        i = i-1
        myArray[i+1] = key
    printArray(myArray)

Back