Professional Documents
Culture Documents
1. 2. 3. 4. 5. 6.
Put a cup of water to boil Take 3/4 piece of ginger Add the ginger to the water Then pour over some tea-leaves Wait until leaves are settled at the bottom of the pot. Pour into mug,add sugar and enjoy the tea !
So.......Algorithm?
In simple terms, is a series of instructions to solve a problem (complete a task)
Problems can be in any form
How to go from Curzon Hall to NewMarket Explain how to tie shoelaces to a five year old child Find largest number from a set of number Sort a given set of number
Bubble Sort
Sorting
Sorting takes an unordered collection and makes it an ordered one.
1 77 2 42 3 35 4 12 5 101 6 5
3 35
12
42
77
101
12
Swap 42 77 42 77
12
Swap 35 77 77 35
12
Swap 12 77 12 77
77
No need to swap
77
5 Swap101 101 5
77
101
Items of Interest
Notice that only the largest value is correctly placed All other values are still out of order So we need to repeat this process
1 42 2 35 3 12 4 5 5 6
77
101
LB
1 12
1 12
2 35 2 5
3 5 3 35
4 42
4 42
5 77
5 77
6 101
6 101
An Animated Example
N 8 did_swap true
to_do
index
98 23 45 14 1 2 3 4
6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap false
to_do
index
7
1
98 23 45 14 1 2 3 4
6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap false
to_do
index
7
1 Swap 98 23 45 14 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
1 Swap 23 98 45 14 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
2
23 98 45 14 1 2 3 4
6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
2 Swap 23 98 45 14 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
2 Swap 23 45 98 14 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
3
23 45 98 14 1 2 3 4
6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
3 Swap 23 45 98 14 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
3 Swap 23 45 14 98 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
4
23 45 14 98 1 2 3 4
6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
4 Swap 23 45 14 98 1 2 3 4 6 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
4 Swap 23 45 14 6 1 2 3 4 98 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
5
23 45 14 6 1 2 3 4
98 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
5 Swap 23 45 14 6 1 2 3 4 98 67 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
5 Swap 23 45 14 6 1 2 3 4 67 98 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
6
23 45 14 6 1 2 3 4
67 98 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
6 Swap 23 45 14 6 1 2 3 4 67 98 33 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
6 Swap 23 45 14 6 1 2 3 4 67 33 98 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
7
23 45 14 6 1 2 3 4
67 33 98 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
7 Swap 23 45 14 6 1 2 3 4 67 33 98 42 5 6 7 8
An Animated Example
N 8 did_swap true
to_do
index
7
7 Swap 23 45 14 6 1 2 3 4 67 33 42 98 5 6 7 8
to_do
index
7
8 Finished first Bubble Up
23 45 14 6 1 2 3 4
67 33 42 98 5 6 7 8
to_do
index
6
1
23 45 14 6 1 2 3 4
67 33 42 98 5 6 7 8
to_do
index
6
1 No Swap 23 45 14 6 1 2 3 4 67 33 42 98 5 6 7 8
to_do
index
6
2
23 45 14 6 1 2 3 4
67 33 42 98 5 6 7 8
to_do
index
6
2 Swap 23 45 14 6 1 2 3 4 67 33 42 98 5 6 7 8
to_do
index
6
2 Swap 23 14 45 6 1 2 3 4 67 33 42 98 5 6 7 8
to_do
index
6
3
23 14 45 6 1 2 3 4
67 33 42 98 5 6 7 8
to_do
index
6
3 Swap 23 14 45 6 1 2 3 4 67 33 42 98 5 6 7 8
to_do
index
6
3 Swap 23 14 6 1 2 3 45 67 33 42 98 4 5 6 7 8
to_do
index
6
4
23 14 6 1 2 3
45 67 33 42 98 4 5 6 7 8
to_do
index
6
4 No Swap 23 14 6 1 2 3 45 67 33 42 98 4 5 6 7 8
to_do
index
6
5
23 14 6 1 2 3
45 67 33 42 98 4 5 6 7 8
to_do
index
6
5 Swap 23 14 6 1 2 3 45 67 33 42 98 4 5 6 7 8
to_do
index
6
5 Swap 23 14 6 1 2 3 45 33 67 42 98 4 5 6 7 8
to_do
index
6
6
23 14 6 1 2 3
45 33 67 42 98 4 5 6 7 8
to_do
index
6
6 Swap 23 14 6 1 2 3 45 33 67 42 98 4 5 6 7 8
to_do
index
6
6 Swap 23 14 6 1 2 3 45 33 42 67 98 4 5 6 7 8
to_do
index
6
7 Finished second Bubble Up
23 14 6 1 2 3
45 33 42 67 98 4 5 6 7 8
to_do
index
5
1
23 14 6 1 2 3
45 33 42 67 98 4 5 6 7 8
to_do
index
5
1 Swap 23 14 6 1 2 3 45 33 42 67 98 4 5 6 7 8
to_do
index
5
1 Swap 14 23 6 1 2 3 45 33 42 67 98 4 5 6 7 8
to_do
index
5
2
14 23 6 1 2 3
45 33 42 67 98 4 5 6 7 8
to_do
index
5
2 Swap 14 23 6 1 2 3 45 33 42 67 98 4 5 6 7 8
to_do
index
5
2 Swap 14 6 1 2 23 45 33 42 67 98 3 4 5 6 7 8
to_do
index
5
3
14 6 1 2
23 45 33 42 67 98 3 4 5 6 7 8
to_do
index
5
3 No Swap 14 6 1 2 23 45 33 42 67 98 3 4 5 6 7 8
to_do
index
5
4
14 6 1 2
23 45 33 42 67 98 3 4 5 6 7 8
to_do
index
5
4 Swap 14 6 1 2 23 45 33 42 67 98 3 4 5 6 7 8
to_do
index
5
4 Swap 14 6 1 2 23 33 45 42 67 98 3 4 5 6 7 8
to_do
index
5
5
14 6 1 2
23 33 45 42 67 98 3 4 5 6 7 8
to_do
index
5
5 Swap 14 6 1 2 23 33 45 42 67 98 3 4 5 6 7 8
to_do
index
5
5 Swap 14 6 1 2 23 33 42 45 67 98 3 4 5 6 7 8
to_do
index
5
6 Finished third Bubble Up
14 6 1 2
23 33 42 45 67 98 3 4 5 6 7 8
to_do
index
4
1
14 6 1 2
23 33 42 45 67 98 3 4 5 6 7 8
to_do
index
4
1 Swap 14 6 1 2 23 33 42 45 67 98 3 4 5 6 7 8
to_do
index
4
1 Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
2
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
2 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
3
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
3 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
4
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
4 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
4
5 Finished fourth Bubble Up
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
1
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
1 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
2
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
2 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
3
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
3 No Swap 6 1 14 23 33 42 45 67 98 2 3 4 5 6 7 8
to_do
index
3
4
6 1
14 23 33 42 45 67 98 2 3 4 5 6 7 8
Finished Early
N 8 did_swap false We didnt do any swapping, so all of the other elements must be correctly placed. We can skip the last two passes of the outer loop.
to_do
index
3
4
6
1
14 23 33 42 45 67 98
2 3 4 5 6 7 8
Summary
Bubble Up algorithm will move largest value to its correct location (to the right) Repeat Bubble Up until all elements are correctly placed: Maximum of N-1 times Can finish early if no swapping occurs We reduce the number of elements we compare each time one is correctly placed
LB
Truth in CS Act
NOBODY EVER USES BUBBLE SORT
NOBODY NOT EVER BECAUSE IT IS EXTREMELY INEFFICIENT