Back

Bubble sorting- Answers

You can copy and paste these programs directly into Python and run them. You may, after your students have battled through sort algorithms, want to point out the sort method available for lists for 5 minutes. It's a very quick and easy way to sort a list but nowhere near as much fun as algorithms such as these!

Q1 - 2

def bubble(myList):
    for passnumber in range(len(myList)-1,0,-1):
        for i in range(passnumber):
            if myList[i]>myList[i+1]:
                temp = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = temp

anyList = [54,26,93,17,77,31,44,55,20]
bubble(anyList)

print(anyList)

Q3.

import random

#This code creates a list of random numbers
anyList = [] # 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)
    anyList.append(random.randint(1,100)) # get a random number and append it to the list

def bubble(myList):
    for passnumber in range(len(myList)-1,0,-1):
        for i in range(passnumber):
            if myList[i]>myList[i+1]:
                temp = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = temp

print(anyList)
bubble(anyList)
print(anyList)

Q4.

import random

#This code creates a list of random numbers
anyList = [] # 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)
    anyList.append(random.randint(1,20)) # get a random number and append it to the list

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

print('This is the unsorted list:')
printList(anyList)
print('\n')


def bubble(myList):
    for passnumber in range(len(myList)-1,0,-1):
        for i in range(passnumber):
            if myList[i]>myList[i+1]:
                temp = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = temp
                printList(anyList)

bubble(anyList)

Extension a

import random

#This code creates a list of random numbers
anyList = [] # 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)
    anyList.append(random.randint(1,20)) # get a random number and append it to the list

anyList1 = anyList[:]
anyList2 = anyList[:]

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

def bubble(myList):
    for passnumber in range(len(myList)-1,0,-1):
        for i in range(passnumber):
            if myList[i]>myList[i+1]:
                temp = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = temp
                printList(anyList1)

def insertion(myArray):
    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
        printList(myArray)

print('This is the unsorted list:')
printList(anyList1)
print('This is bubble sort ...\n')
bubble(anyList1)

print('This is the unsorted list:')
printList(anyList2)
print('This is insertion sort ...\n')
insertion(anyList2)

Extension b

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

anyList1 = anyList[:]
anyList2 = anyList[:]

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

def bubble(myList):
    for passnumber in range(len(myList)-1,0,-1):
        for i in range(passnumber):
            if myList[i]>myList[i+1]:
                temp = myList[i]
                myList[i] = myList[i+1]
                myList[i+1] = temp
                printList(anyList1)

def insertion(myArray):
    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
        printList(myArray)

print('This is the unsorted list:')
printList(anyList1)
print('This is bubble sort ...\n')
bubble(anyList1)

print('This is the unsorted list:')
printList(anyList2)
print('This is insertion sort ...\n')
insertion(anyList2)

Back