## Introduction

### Bubble Sort – O(n²)

Bubble sort is a very easy to code Sorting Algorithm that sorts items in an array into some order.

It could be used for :

- Numerical Order
- Alphabetical Order
- Time Order

Although it is simple to code it is incredibly slow, especially for larger arrays, and so is hardly ever used. You can tell it is really efficient by looking at the **n squared** part of the Big 0 value above, it shows an exponential relationship!!!

- 10 items – n² = 100
- 100 items – n² = 10,000
- 1000 items – n² = 1,000,000

### How does Bubble Sort work?

*AS & A Level – You are required to know how it works and be able to write Code / Pseudocode for the algorithm*

The bubble sort algorithm works by sorting through the array in pairs.

- It starts at the left of the array and inspects the first two items.
- If the items are in the wrong order they are swapped around.
- The algorithm then carries on with the next pair along and so forth.
- When it reaches the end of the array it goes back to the beginning of the array and starts again.
- If it completes a full pass of the array without swapping any items it knows that the array is sorted.

## Demonstration

#### Bubble Sort Demonstration (Using Scratch)

## Python Tutorial

## Python Code

### Python Code

import time,random l = [5,7,1,4,6,2,3,5,44] def bubble_sort(l): while True: swapped = False for index in range(len(l)-1): if l[index] > l[index+1]: l[index], l[index+1] = l[index+1], l[index] swapped = True if swapped == False: return bubble_sort(l) print(l)

## Pseudocode

### PseudoCode