Sorting
Simple Sorting Algorithm (Recap) A[0] A[i] A[i+1] A[N-1] for in range(len(A)) : k = position of min. element between A [i] and A [N-1] Swap A [i] and A [k] Selection Sort Courtesy Prof P R Panda CSE, IIT Dellhi 2
Simple Sorting Algorithm (Recap) A[0] A[i] A[i+1] A[N-1] for in range(len(A)) : k = position of min. element for j in range(i+1, len(A)): between A [i] and A [N-1] if A[min_index] > A[j]: Swap A [i] and A [k] min_index = j t = A [ i ] A [ i ] = A [ k ] Selection Sort A [ k ] = t Courtesy Prof P R Panda CSE, IIT Dellhi 3
Simple Sorting Algorithm (Recap) A[0] A[i] A[i+1] A[N-1] Find Min for first time n elements: n-1 coparisons Next time : n-2 . . up to 1 Total time = (n-1)+(n-2)+….+1=(n*(n-1))/2 O(n 2 ) Selection Sort Courtesy Prof P R Panda CSE, IIT Dellhi 4
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 5 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 6 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 7 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 8 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 9 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Divide and conquer 10
Merge Sort Divide and conquer Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer- 11 science-and-programming-in-python-fall-2016/lecture-slides-code/
Merge Sort Running Time (Time Complexity as O) Recurrence Relation: T(1)=1 if n=1 T(n) = 2T(n/2) + cn Solution O(nlog 2 n) 12
Quick Sort Based on partitioing in two parts such that first part is less than equal to x and right part is greater than x. If x is an element of the array then it gets located at the right place if the seuqence is sorted. A[0] A[N-1] <=x x >x pivot 13
Quick Sort 14
Quick Sort 15
Quick Sort Choice of pivot decides the performance of the algorithm. If the partitioning happens in two almost equal parts, it is an ideal case. Time Complexity Best Case: T(1)=1 T(n)=2T(n/2)+cn where cn is the partining time Complexity O(nlog 2 n) 16
Quick Sort Time Complexity Worst Case: T(1)=1 T(n)=T(n-1)+T(1)+ cn where cn is the partining time Complexity O(n 2 ) Average Case: O(nlog 2 n) 17
Insertion Sort Basic idea is to insert the current element at the right place. This may require shifting the elements 18
Insertion Sort https://www.geeksforgeeks.org/insertion-sort/ 19
Insertion Sort Time Complexity Worst Case: O(n 2 ) when elements are sorted in the reverse order Best Case: O(n) when elements are already sorted 20
Bubble Sort https://codingcompiler.com/bubble-sort-program-in-c-using-function/ 21
Bubble Sort Time Complexity: O(n 2 ) 22
Recommend
More recommend