Data structures and algorithms - sorting algorithms

Download Data structures and algorithms - sorting algorithms

Post on 12-Aug-2015



Data & Analytics

2 download

Embed Size (px)


<ol><li> 1. Data Structures and Algorithms - Sorting algorithms Abimbola Idowu The Andela Institute </li><li> 2. Introduction to Sorting Algorithms </li><li> 3. 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 </li><li> 4. Classifications Computation complexity Memory Usage Stability Comparison sort... 4 </li><li> 5. Part 1 - Slow sort </li><li> 6. 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 </li><li> 7. 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] &gt; A[i] then /* swap them and remember something changed */ swap( A[i-1], A[i] ) swapped = true end if end for until not swapped end procedure </li><li> 8. Bubble sort complexity 8 Best Average Worst n n2 n2 </li><li> 9. 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 </li><li> 10. Pseudocode 10 for i 1 to length(A) - 1 j i while j &gt; 0 and A[j-1] &gt; A[j] swap A[j] and A[j-1] j j - 1 end while end for </li><li> 11. Insertion sort complexity 11 Best Average Worst n n2 n2 </li><li> 12. Why is slow slow 12 Comparison is local Guarantee to always make a lot of comparison </li><li> 13. Part 2 - Medium Sort </li><li> 14. Merge Sort Divide the array in sublist until each sublist contains one elements Merge sublists until there are one Array is sorted 14 </li><li> 15. Pseudocode 15 function merge(left, right) var list result while notempty(left) and notempty(right) if first(left)</li></ol>