0% found this document useful (0 votes)
2 views22 pages

Python Lecture 12-Sorting

The document provides an overview of various sorting algorithms, including Selection Sort, Merge Sort, Quick Sort, Insertion Sort, and Bubble Sort. It details their methodologies, time complexities, and performance characteristics. The document emphasizes the differences in efficiency and implementation of each sorting technique.

Uploaded by

Abhishek Goutam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views22 pages

Python Lecture 12-Sorting

The document provides an overview of various sorting algorithms, including Selection Sort, Merge Sort, Quick Sort, Insertion Sort, and Bubble Sort. It details their methodologies, time complexities, and performance characteristics. The document emphasizes the differences in efficiency and implementation of each sorting technique.

Uploaded by

Abhishek Goutam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

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
between A [i] and A [N-1] for j in range(i+1, len(A)):
Swap A [i] and A [k] if A[min_index] > A[j]:
min_index = j

t=A[i]
A[i]=A[k]
A[k]=t Selection Sort

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(n2)
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(nlog2n)

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(nlog2n)
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(n2)

Average Case: O(nlog2n)

17
Insertion Sort
Basic idea is to insert the current element at the
right place.

This may require shifting the elements

18
Insertion Sort

19
https://www.geeksforgeeks.org/insertion-sort/
Insertion Sort

Time Complexity
Worst Case: O(n2) 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(n2)

22

You might also like