data structures and algorithms - sorting algorithms

17
Data Structures and Algorithms - Sorting algorithms Abimbola Idowu The Andela Institute

Upload: abimbola-idowu

Post on 12-Aug-2015

310 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: Data structures and algorithms - sorting algorithms

Data Structures and Algorithms - Sorting algorithms

Abimbola IdowuThe Andela Institute

Page 2: Data structures and algorithms - sorting algorithms

Introduction to Sorting Algorithms

Page 3: Data structures and algorithms - sorting algorithms

Why sorting algorithms

3

• Efficient sorting is important for the use of other

algorithms such as search

• The way data is sorted affects how fast it can be

traversed or searched for

• Poor choice of algorithms affect the runtime of our

code

Page 4: Data structures and algorithms - sorting algorithms

Classifications

• Computation complexity

• Memory Usage

• Stability

• Comparison sort...

4

Page 5: Data structures and algorithms - sorting algorithms

Part 1 - Slow sort

Page 6: Data structures and algorithms - sorting algorithms

Bubble Sort

• Loop through the array

• Compares each pair of adjacent elements

• Swaps if they are in wrong order

• Repeat until no swap is done

• Array is sorted

6

Page 7: Data structures and algorithms - sorting algorithms

Pseudocode

7

procedure bubbleSort( A : list of sortable items ) n = length(A) repeat swapped = false for i = 1 to n-1 inclusive do /* if this pair is out of order */ if A[i-1] > A[i] then /* swap them and remember something changed */ swap( A[i-1], A[i] ) swapped = true end if end for until not swappedend procedure

Page 8: Data structures and algorithms - sorting algorithms

Bubble sort complexity

8

Best Average Worst

n n2 n2

Page 9: Data structures and algorithms - sorting algorithms

Insertion sort

• Loop through the array

• Pick an element in the array

• Find the location where it belongs in the array

• Continue till loops ends

• Array is sorted

9

Page 10: Data structures and algorithms - sorting algorithms

Pseudocode

10

for i ← 1 to length(A) - 1 j ← i while j > 0 and A[j-1] > A[j] swap A[j] and A[j-1] j ← j - 1 end whileend for

Page 11: Data structures and algorithms - sorting algorithms

Insertion sort complexity

11

Best Average Worst

n n2 n2

Page 12: Data structures and algorithms - sorting algorithms

Why is slow slow

12

• Comparison is local

• Guarantee to always make a lot of

comparison

Page 13: Data structures and algorithms - sorting algorithms

Part 2 - Medium Sort

Page 14: Data structures and algorithms - sorting algorithms

Merge Sort

• Divide the array in sublist until each sublist

contains one elements

• Merge sublists until there are one

• Array is sorted

14

Page 15: Data structures and algorithms - sorting algorithms

Pseudocode

15

function merge(left, right) var list result while notempty(left) and notempty(right) if first(left) <= first(right) append first(left) to result left = rest(left) else append first(right) to result right = rest(right) // either left or right may have elements left while notempty(left) append first(left) to result left = rest(left) while notempty(right) append first(right) to result right = rest(right) return result

Page 16: Data structures and algorithms - sorting algorithms

Merge sort complexity

16

Best Average Worst

n n logn n logn

Page 17: Data structures and algorithms - sorting algorithms

Next time

• Other types of medium sorts• Fast sorts

17