cs 162 intro to programming ii bubble sort 1. compare adjacent elements. if the first is greater...

6
CS 162 Intro to Programming II Bubble Sort 1

Upload: donna-jones

Post on 17-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

1

CS 162Intro to Programming II

Bubble Sort

Page 2: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

2

Bubble Sort

• Compare adjacent elements. If the first is greater than the second, swap them.

• Do this for each pair of adjacent elements, starting with the first two and ending with the last two. At this point the last element should be the greatest.

• Repeat the steps for all elements except the last one.

• Keep repeating for one fewer element each time, until you have no more pairs to compare.

Page 3: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

3

Bubble Sort4421581623

4421582316

4421523816

4422315816

4422315816

4242315816

Page 4: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

4

Bubble Sort

• The largest element is in the last element of the array. The rest of the array is still unsorted. We do it again but stop at n-1.

4242315816

4242315816

Page 5: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

5

Codevoid bubbleSort(int a[], int size) {

for (int i = (size-1); i >= 0; i--) {for (int j = 1; j<=i; j++){

if (a[j-1] > a[j]){// Swap elements at j-1 and jint temp = a[j-1];a[j-1] = a[j];a[j] = temp;

}}

}}

Page 6: CS 162 Intro to Programming II Bubble Sort 1. Compare adjacent elements. If the first is greater than the second, swap them. Do this for each pair of

6

Complexity

Best Case- already in order O(n2)

Worst Case- reversed O(n2)

Average Case- O(n2)

There is a version with best case O(n)