SlideShare a Scribd company logo
Analysis and Design of Algorithms
Sorting Algorithms I
Analysis and Design of Algorithms
Sorting Algorithms
Bubble Sort
Selection Sort
Insertion Sort
Analysis and Design of Algorithms
 Sorting Algorithm is an algorithm made up of a series of instructions
that takes an array as input, and outputs a sorted array.
 There are many sorting algorithms, such as:
 Selection Sort, Bubble Sort, Insertion Sort, Merge Sort,
Heap Sort, QuickSort, Radix Sort, Counting Sort, Bucket
Sort, ShellSort, Comb Sort, Pigeonhole Sort, Cycle Sort
Analysis and Design of Algorithms
Bubble Sort
Analysis and Design of Algorithms
Bubble Sort is the simplest sorting algorithm
that works by repeatedly swapping the
adjacent elements if they are in wrong
order.
Analysis and Design of Algorithms
Algorithm:
 Step1: Compare each pair of adjacent elements in the list
 Step2: Swap two element if necessary
 Step3: Repeat this process for all the elements until the
entire array is sorted
Analysis and Design of Algorithms
 Example 1 Assume the following Array:
5 1 4 2
Analysis and Design of Algorithms
 First Iteration:
 Compare
5 1 4 2

j

j+1
Analysis and Design of Algorithms
 First Iteration:
 Swap
1 5 4 2

j

j+1
Analysis and Design of Algorithms
 First Iteration:
 Compare
1 5 4 2

j

j+1
Analysis and Design of Algorithms
 First Iteration:
 Swap
1 4 5 2

j

j+1
Analysis and Design of Algorithms
 First Iteration:
 Compare
1 4 5 2

j

j+1
Analysis and Design of Algorithms
 First Iteration:
 Swap
1 4 2 5

j

j+1
Analysis and Design of Algorithms
1 4 2 5
Analysis and Design of Algorithms
 Second Iteration:
 Compare
1 4 2 5

j

j+1
Analysis and Design of Algorithms
 Second Iteration:
 Compare
1 4 2 5

j

j+1
Analysis and Design of Algorithms
 Second Iteration:
 Swap
1 2 4 5

j

j+1
Analysis and Design of Algorithms
1 2 4 5
Analysis and Design of Algorithms
 Third Iteration:
 Compare
1 2 4 5

j

j+1
Analysis and Design of Algorithms
1 2 4 5
Analysis and Design of Algorithms
 Array is now sorted
1 2 3 4
Analysis and Design of Algorithms
5 4 2 1 3
4 5 2 1 3
4 2 5 1 3
4 2 1 5 3
4 2 1 3 5
4 2 1 3 5
2 4 1 3 5
2 1 4 3 5
2 1 3 4 5
2 1 3 4 5
1 2 3 4 5
1 2 3 4 5
 Example 2:
Analysis and Design of Algorithms
 What is the output of bubble sort after the 1st iteration given the
following sequence of numbers: 13 2 9 4 18 45 37 63
a) 2 4 9 13 18 37 45 63
b) 2 9 4 13 18 37 45 63
c) 13 2 4 9 18 45 37 63
d) 2 4 9 13 18 45 37 63
Analysis and Design of Algorithms
 What is the output of bubble sort after the 1st iteration given the
following sequence of numbers: 13 2 9 4 18 45 37 63
a) 2 4 9 13 18 37 45 63
b) 2 9 4 13 18 37 45 63
c) 13 2 4 9 18 45 37 63
d) 2 4 9 13 18 45 37 63
Analysis and Design of Algorithms
 Python Code
Analysis and Design of Algorithms
Analysis and Design of Algorithms
 Time Complexity: O(n2) as there are two nested loops
 Example of worst case
5 4 3 2 1
Analysis and Design of Algorithms
Selection Sort
Analysis and Design of Algorithms
The selection sort algorithm sorts an array by
repeatedly finding the minimum element
(considering ascending order) from unsorted
part and putting it at the beginning.
Analysis and Design of Algorithms
Algorithm:
 Step1: Find the minimum value in the list
 Step2: Swap it with the value in the current position
 Step3: Repeat this process for all the elements until the
entire array is sorted
Analysis and Design of Algorithms
 Example 1 Assume the following Array:
8 12 5 9 2
Analysis and Design of Algorithms
 Compare
8 12 5 9 2

i

j

min
Analysis and Design of Algorithms
 Compare
8 12 5 9 2

i

j

min
Analysis and Design of Algorithms
 Move
8 12 5 9 2

j

i

min
Analysis and Design of Algorithms
 Compare
8 12 5 9 2

i

min

j
Analysis and Design of Algorithms
 Compare
8 12 5 9 2

i

min

j
Analysis and Design of Algorithms
 Move
8 12 5 9 2

i

j

min
Analysis and Design of Algorithms
 Smallest
8 12 5 9 2

i

min
Analysis and Design of Algorithms
 Swap
8 12 5 9 2

min

i
Analysis and Design of Algorithms
 Sorted
 Un Sorted
2 12 5 9 8

Sorted

Un Sorted
Analysis and Design of Algorithms
 Compare
2 12 5 9 8

i

min

j

Sorted
Analysis and Design of Algorithms
 Move
2 12 5 9 8

i

min

j

Sorted
Analysis and Design of Algorithms
 Compare
2 12 5 9 8

Sorted

i

j

min
Analysis and Design of Algorithms
 Compare
2 12 5 9 8

Sorted

i

j

min
Analysis and Design of Algorithms
 Smallest
2 12 5 9 8

Sorted

i

min
Analysis and Design of Algorithms
 Swap
2 12 5 9 8

Sorted

i

min
Analysis and Design of Algorithms
 Sorted
 Un Sorted
2 5 12 9 8

Sorted

Un Sorted
Analysis and Design of Algorithms
 Compare
2 5 12 9 8

Sorted

i

j

min
Analysis and Design of Algorithms
 Move
2 5 12 9 8

Sorted

i

j

min
Analysis and Design of Algorithms
 Compare
2 5 12 9 8

Sorted

i

min

j
Analysis and Design of Algorithms
 Move
2 5 12 9 8

Sorted

i

min

j
Analysis and Design of Algorithms
 Smallest
2 5 12 9 8

Sorted

i

min
Analysis and Design of Algorithms
 Swap
2 5 12 9 8

Sorted

i

min
Analysis and Design of Algorithms
 Sorted
 Un Sorted
2 5 8 9 12

Sorted

Un Sorted
Analysis and Design of Algorithms
 Compare
2 5 8 9 12

Sorted

i

min

j
Analysis and Design of Algorithms
 Sorted
 Un Sorted
2 5 8 9 12

Sorted

Un Sorted
Analysis and Design of Algorithms
 Sorted
 Un Sorted
2 5 8 9 12

Sorted

i

min
Analysis and Design of Algorithms
 Array is now sorted
2 5 8 9 12

Sorted
Analysis and Design of Algorithms
12 10 16 11 9 7 Example 2:
7 10 16 11 9 12
7 9 16 11 10 12
7 9 10 11 16 12
7 9 10 11 16 12
7 9 10 11 12 16
12 10 16 11 9 7
Analysis and Design of Algorithms
 What is the output of selection sort after the 2nd iteration given
the following sequence of numbers: 13 2 9 4 18 45 37 63
a) 2 4 9 13 18 37 45 63
b) 2 9 4 13 18 37 45 63
c) 13 2 4 9 18 45 37 63
d) 2 4 9 13 18 45 37 63
Analysis and Design of Algorithms
 What is the output of selection sort after the 2nd iteration given
the following sequence of numbers: 13 2 9 4 18 45 37 63
a) 2 4 9 13 18 37 45 63
b) 2 9 4 13 18 37 45 63
c) 13 2 4 9 18 45 37 63
d) 2 4 9 13 18 45 37 63
Analysis and Design of Algorithms
 Python Code
Analysis and Design of Algorithms
Analysis and Design of Algorithms
 Time Complexity: O(n2) as there are two nested loops
 Example of worst case
2 3 4 5 1
Analysis and Design of Algorithms
Insertion Sort
Analysis and Design of Algorithms
Insertion sort is a simple sorting
algorithm that works the way we sort
playing cards in our hands.
Analysis and Design of Algorithms
 Algorithm:
 Step1: Compare each pair of adjacent elements in the list
 Step2: Insert element into the sorted list, until it occupies correct
position.
 Step3: Swap two element if necessary
 Step4: Repeat this process for all the elements until the entire
array is sorted
Analysis and Design of Algorithms
 Assume the following Array:
5 1 4 2
Analysis and Design of Algorithms
 Compare
 Store=
5 1 4 2

i

j

j+1
1
Analysis and Design of Algorithms
 Move
 Store=
5 4 2

i

j

j+1
1
Analysis and Design of Algorithms
 Move
 Store=
1 5 4 2

i

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 5 4 2

i

j
4

j+1
Analysis and Design of Algorithms
 Move
 Store=
1 5 2

i

j
4

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 5 2

i

j
4

j+1
Analysis and Design of Algorithms
 Move
 Store=
1 4 5 2

i

j

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 4 5 2

i

j
2

j+1
Analysis and Design of Algorithms
 Move
 Store=
1 4 5

i

j
2

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 4 5

i

j
2

j+1
Analysis and Design of Algorithms
 Move
 Store=
1 4 5

i

j
2

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 4 5

i

j
2

j+1
Analysis and Design of Algorithms
 Compare
 Store=
1 2 4 5

i

j

j+1
Analysis and Design of Algorithms
 Array is now sorted
1 2 4 5
Analysis and Design of Algorithms
5 1 8 3 9 2
 Example 2:
1 5 8 3 9 2
1 5 8 3 9 2
1 3 5 8 9 2
1 3 5 8 9 2
1 2 3 5 8 9
5 1 8 3 9 2
Analysis and Design of Algorithms
 What is the output of insertion sort after the 1st iteration given the
following sequence of numbers: 7 3 5 1 9 8 4 6
a) 3 7 5 1 9 8 4 6
b) 1 3 7 5 9 8 4 6
c) 3 4 1 5 6 8 7 9
d) 1 3 4 5 6 7 8 9
Analysis and Design of Algorithms
 What is the output of insertion sort after the 1st iteration given the
following sequence of numbers: 7 3 5 1 9 8 4 6
a) 3 7 5 1 9 8 4 6
b) 1 3 7 5 9 8 4 6
c) 3 4 1 5 6 8 7 9
d) 1 3 4 5 6 7 8 9
Analysis and Design of Algorithms
 What is the output of insertion sort after the 2nd iteration given the
following sequence of numbers: 7 3 5 1 9 8 4 6
a) 3 5 7 1 9 8 4 6
b) 1 3 7 5 9 8 4 6
c) 3 4 1 5 6 8 7 9
d) 1 3 4 5 6 7 8 9
Analysis and Design of Algorithms
 What is the output of insertion sort after the 2nd iteration given the
following sequence of numbers: 7 3 5 1 9 8 4 6
a) 3 5 7 1 9 8 4 6
b) 1 3 7 5 9 8 4 6
c) 3 4 1 5 6 8 7 9
d) 1 3 4 5 6 7 8 9
Analysis and Design of Algorithms
 Python Code
Analysis and Design of Algorithms
Analysis and Design of Algorithms
 Time Complexity: O(n2)
 Example of worst case
5 4 3 2 1
Analysis and Design of Algorithms
facebook.com/mloey
mohamedloey@gmail.com
twitter.com/mloey
linkedin.com/in/mloey
mloey@fci.bu.edu.eg
mloey.github.io
Analysis and Design of Algorithms
www.YourCompany.com
© 2020 Companyname PowerPoint Business Theme. All Rights Reserved.
THANKS FOR
YOUR TIME

More Related Content

PDF
Algorithms Lecture 6: Searching Algorithms
PDF
Algorithms Lecture 5: Sorting Algorithms II
PDF
Algorithms Lecture 1: Introduction to Algorithms
PDF
Algorithms Lecture 2: Analysis of Algorithms I
PDF
Algorithms Lecture 3: Analysis of Algorithms II
PDF
Algorithms Lecture 7: Graph Algorithms
PPT
Divide and conquer
PPT
SEARCHING AND SORTING ALGORITHMS
Algorithms Lecture 6: Searching Algorithms
Algorithms Lecture 5: Sorting Algorithms II
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 3: Analysis of Algorithms II
Algorithms Lecture 7: Graph Algorithms
Divide and conquer
SEARCHING AND SORTING ALGORITHMS

What's hot (20)

PPTX
PPTX
Hashing Technique In Data Structures
PPTX
Binary Search Tree in Data Structure
PPTX
Quick sort-Data Structure
PPTX
Sorting Algorithms
PPT
Data Structures- Part5 recursion
PPTX
Searching
PPTX
Hash table in data structure and algorithm
PPT
Hashing PPT
PPTX
Complexity analysis in Algorithms
PPT
Hash table
PDF
Data structures
PPTX
Data structures and algorithms
PPT
Lec 17 heap data structure
PPT
Algorithm analysis
DOC
Time and space complexity
PPTX
Merge sort and quick sort
PPTX
Introduction to data structure ppt
PPTX
Asymptotic Notation
PDF
Data structure ppt
Hashing Technique In Data Structures
Binary Search Tree in Data Structure
Quick sort-Data Structure
Sorting Algorithms
Data Structures- Part5 recursion
Searching
Hash table in data structure and algorithm
Hashing PPT
Complexity analysis in Algorithms
Hash table
Data structures
Data structures and algorithms
Lec 17 heap data structure
Algorithm analysis
Time and space complexity
Merge sort and quick sort
Introduction to data structure ppt
Asymptotic Notation
Data structure ppt
Ad

Viewers also liked (6)

PDF
Convolutional Neural Network Models - Deep Learning
PDF
Computer Security Lecture 7: RSA
PDF
PMP Lecture 1: Introduction to Project Management
PDF
Computer Security Lecture 5: Simplified Advanced Encryption Standard
PDF
Deep Learning - Overview of my work II
PPSX
C++ Programming Language
Convolutional Neural Network Models - Deep Learning
Computer Security Lecture 7: RSA
PMP Lecture 1: Introduction to Project Management
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Deep Learning - Overview of my work II
C++ Programming Language
Ad

Similar to Algorithms Lecture 4: Sorting Algorithms I (20)

PPTX
UNEC__1683196273.pptx
PPT
chapter 1
PPT
Data Structure (MC501)
PPTX
Lecture 1.pptx
PPT
Lecture 01-2.ppt
PPT
467719275-Lecture-01 designe and alg.ppt
PDF
01-Slides.pdf
PPT
Cis435 week01
PPT
Unit 1 chapter 1 Design and Analysis of Algorithms
PPT
Sorting techniques
PPT
l01-intro (3).ppt
PPT
Lect01
PPTX
Data structure using c module 3
PPTX
Algorithm analysis (All in one)
PPT
InsertionSortBubbleSortSelectionSort.ppt
PPTX
Lecture 13 data structures and algorithms
PPTX
Different Searching and Sorting Methods.pptx
PPT
Lec1.ppt
PDF
Sorting
PPT
Insertion sort bubble sort selection sort
UNEC__1683196273.pptx
chapter 1
Data Structure (MC501)
Lecture 1.pptx
Lecture 01-2.ppt
467719275-Lecture-01 designe and alg.ppt
01-Slides.pdf
Cis435 week01
Unit 1 chapter 1 Design and Analysis of Algorithms
Sorting techniques
l01-intro (3).ppt
Lect01
Data structure using c module 3
Algorithm analysis (All in one)
InsertionSortBubbleSortSelectionSort.ppt
Lecture 13 data structures and algorithms
Different Searching and Sorting Methods.pptx
Lec1.ppt
Sorting
Insertion sort bubble sort selection sort

More from Mohamed Loey (19)

PDF
Lecture 6: Deep Learning Applications
PDF
Lecture 5: Convolutional Neural Network Models
PDF
Lecture 4: Deep Learning Frameworks
PDF
Lecture 4: How it Works: Convolutional Neural Networks
PPTX
Lecture 3: Convolutional Neural Networks
PDF
Lecture 2: Artificial Neural Network
PDF
Lecture 1: Deep Learning for Computer Vision
PDF
Design of an Intelligent System for Improving Classification of Cancer Diseases
PDF
Computer Security - CCNA Security - Lecture 2
PDF
Computer Security - CCNA Security - Lecture 1
PDF
Algorithms Lecture 8: Pattern Algorithms
PDF
Computer Security Lecture 4.1: DES Supplementary Material
PDF
PMP Lecture 4: Project Integration Management
PDF
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
PDF
Computer Security Lecture 3: Classical Encryption Techniques 2
PDF
Computer Security Lecture 2: Classical Encryption Techniques 1
PDF
Computer Security Lecture 1: Overview
PDF
PMP Lecture 3: Project Management Processes
PDF
PMP Lecture 2: Project Management Framework
Lecture 6: Deep Learning Applications
Lecture 5: Convolutional Neural Network Models
Lecture 4: Deep Learning Frameworks
Lecture 4: How it Works: Convolutional Neural Networks
Lecture 3: Convolutional Neural Networks
Lecture 2: Artificial Neural Network
Lecture 1: Deep Learning for Computer Vision
Design of an Intelligent System for Improving Classification of Cancer Diseases
Computer Security - CCNA Security - Lecture 2
Computer Security - CCNA Security - Lecture 1
Algorithms Lecture 8: Pattern Algorithms
Computer Security Lecture 4.1: DES Supplementary Material
PMP Lecture 4: Project Integration Management
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
Computer Security Lecture 3: Classical Encryption Techniques 2
Computer Security Lecture 2: Classical Encryption Techniques 1
Computer Security Lecture 1: Overview
PMP Lecture 3: Project Management Processes
PMP Lecture 2: Project Management Framework

Recently uploaded (20)

PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Sports Quiz easy sports quiz sports quiz
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
Institutional Correction lecture only . . .
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PDF
Complications of Minimal Access Surgery at WLH
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Cell Types and Its function , kingdom of life
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
GDM (1) (1).pptx small presentation for students
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Sports Quiz easy sports quiz sports quiz
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Institutional Correction lecture only . . .
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Complications of Minimal Access Surgery at WLH
PPH.pptx obstetrics and gynecology in nursing
Microbial disease of the cardiovascular and lymphatic systems
Cell Types and Its function , kingdom of life
Microbial diseases, their pathogenesis and prophylaxis
TR - Agricultural Crops Production NC III.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Supply Chain Operations Speaking Notes -ICLT Program
GDM (1) (1).pptx small presentation for students

Algorithms Lecture 4: Sorting Algorithms I

  • 1. Analysis and Design of Algorithms Sorting Algorithms I
  • 2. Analysis and Design of Algorithms Sorting Algorithms Bubble Sort Selection Sort Insertion Sort
  • 3. Analysis and Design of Algorithms  Sorting Algorithm is an algorithm made up of a series of instructions that takes an array as input, and outputs a sorted array.  There are many sorting algorithms, such as:  Selection Sort, Bubble Sort, Insertion Sort, Merge Sort, Heap Sort, QuickSort, Radix Sort, Counting Sort, Bucket Sort, ShellSort, Comb Sort, Pigeonhole Sort, Cycle Sort
  • 4. Analysis and Design of Algorithms Bubble Sort
  • 5. Analysis and Design of Algorithms Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order.
  • 6. Analysis and Design of Algorithms Algorithm:  Step1: Compare each pair of adjacent elements in the list  Step2: Swap two element if necessary  Step3: Repeat this process for all the elements until the entire array is sorted
  • 7. Analysis and Design of Algorithms  Example 1 Assume the following Array: 5 1 4 2
  • 8. Analysis and Design of Algorithms  First Iteration:  Compare 5 1 4 2  j  j+1
  • 9. Analysis and Design of Algorithms  First Iteration:  Swap 1 5 4 2  j  j+1
  • 10. Analysis and Design of Algorithms  First Iteration:  Compare 1 5 4 2  j  j+1
  • 11. Analysis and Design of Algorithms  First Iteration:  Swap 1 4 5 2  j  j+1
  • 12. Analysis and Design of Algorithms  First Iteration:  Compare 1 4 5 2  j  j+1
  • 13. Analysis and Design of Algorithms  First Iteration:  Swap 1 4 2 5  j  j+1
  • 14. Analysis and Design of Algorithms 1 4 2 5
  • 15. Analysis and Design of Algorithms  Second Iteration:  Compare 1 4 2 5  j  j+1
  • 16. Analysis and Design of Algorithms  Second Iteration:  Compare 1 4 2 5  j  j+1
  • 17. Analysis and Design of Algorithms  Second Iteration:  Swap 1 2 4 5  j  j+1
  • 18. Analysis and Design of Algorithms 1 2 4 5
  • 19. Analysis and Design of Algorithms  Third Iteration:  Compare 1 2 4 5  j  j+1
  • 20. Analysis and Design of Algorithms 1 2 4 5
  • 21. Analysis and Design of Algorithms  Array is now sorted 1 2 3 4
  • 22. Analysis and Design of Algorithms 5 4 2 1 3 4 5 2 1 3 4 2 5 1 3 4 2 1 5 3 4 2 1 3 5 4 2 1 3 5 2 4 1 3 5 2 1 4 3 5 2 1 3 4 5 2 1 3 4 5 1 2 3 4 5 1 2 3 4 5  Example 2:
  • 23. Analysis and Design of Algorithms  What is the output of bubble sort after the 1st iteration given the following sequence of numbers: 13 2 9 4 18 45 37 63 a) 2 4 9 13 18 37 45 63 b) 2 9 4 13 18 37 45 63 c) 13 2 4 9 18 45 37 63 d) 2 4 9 13 18 45 37 63
  • 24. Analysis and Design of Algorithms  What is the output of bubble sort after the 1st iteration given the following sequence of numbers: 13 2 9 4 18 45 37 63 a) 2 4 9 13 18 37 45 63 b) 2 9 4 13 18 37 45 63 c) 13 2 4 9 18 45 37 63 d) 2 4 9 13 18 45 37 63
  • 25. Analysis and Design of Algorithms  Python Code
  • 26. Analysis and Design of Algorithms
  • 27. Analysis and Design of Algorithms  Time Complexity: O(n2) as there are two nested loops  Example of worst case 5 4 3 2 1
  • 28. Analysis and Design of Algorithms Selection Sort
  • 29. Analysis and Design of Algorithms The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) from unsorted part and putting it at the beginning.
  • 30. Analysis and Design of Algorithms Algorithm:  Step1: Find the minimum value in the list  Step2: Swap it with the value in the current position  Step3: Repeat this process for all the elements until the entire array is sorted
  • 31. Analysis and Design of Algorithms  Example 1 Assume the following Array: 8 12 5 9 2
  • 32. Analysis and Design of Algorithms  Compare 8 12 5 9 2  i  j  min
  • 33. Analysis and Design of Algorithms  Compare 8 12 5 9 2  i  j  min
  • 34. Analysis and Design of Algorithms  Move 8 12 5 9 2  j  i  min
  • 35. Analysis and Design of Algorithms  Compare 8 12 5 9 2  i  min  j
  • 36. Analysis and Design of Algorithms  Compare 8 12 5 9 2  i  min  j
  • 37. Analysis and Design of Algorithms  Move 8 12 5 9 2  i  j  min
  • 38. Analysis and Design of Algorithms  Smallest 8 12 5 9 2  i  min
  • 39. Analysis and Design of Algorithms  Swap 8 12 5 9 2  min  i
  • 40. Analysis and Design of Algorithms  Sorted  Un Sorted 2 12 5 9 8  Sorted  Un Sorted
  • 41. Analysis and Design of Algorithms  Compare 2 12 5 9 8  i  min  j  Sorted
  • 42. Analysis and Design of Algorithms  Move 2 12 5 9 8  i  min  j  Sorted
  • 43. Analysis and Design of Algorithms  Compare 2 12 5 9 8  Sorted  i  j  min
  • 44. Analysis and Design of Algorithms  Compare 2 12 5 9 8  Sorted  i  j  min
  • 45. Analysis and Design of Algorithms  Smallest 2 12 5 9 8  Sorted  i  min
  • 46. Analysis and Design of Algorithms  Swap 2 12 5 9 8  Sorted  i  min
  • 47. Analysis and Design of Algorithms  Sorted  Un Sorted 2 5 12 9 8  Sorted  Un Sorted
  • 48. Analysis and Design of Algorithms  Compare 2 5 12 9 8  Sorted  i  j  min
  • 49. Analysis and Design of Algorithms  Move 2 5 12 9 8  Sorted  i  j  min
  • 50. Analysis and Design of Algorithms  Compare 2 5 12 9 8  Sorted  i  min  j
  • 51. Analysis and Design of Algorithms  Move 2 5 12 9 8  Sorted  i  min  j
  • 52. Analysis and Design of Algorithms  Smallest 2 5 12 9 8  Sorted  i  min
  • 53. Analysis and Design of Algorithms  Swap 2 5 12 9 8  Sorted  i  min
  • 54. Analysis and Design of Algorithms  Sorted  Un Sorted 2 5 8 9 12  Sorted  Un Sorted
  • 55. Analysis and Design of Algorithms  Compare 2 5 8 9 12  Sorted  i  min  j
  • 56. Analysis and Design of Algorithms  Sorted  Un Sorted 2 5 8 9 12  Sorted  Un Sorted
  • 57. Analysis and Design of Algorithms  Sorted  Un Sorted 2 5 8 9 12  Sorted  i  min
  • 58. Analysis and Design of Algorithms  Array is now sorted 2 5 8 9 12  Sorted
  • 59. Analysis and Design of Algorithms 12 10 16 11 9 7 Example 2: 7 10 16 11 9 12 7 9 16 11 10 12 7 9 10 11 16 12 7 9 10 11 16 12 7 9 10 11 12 16 12 10 16 11 9 7
  • 60. Analysis and Design of Algorithms  What is the output of selection sort after the 2nd iteration given the following sequence of numbers: 13 2 9 4 18 45 37 63 a) 2 4 9 13 18 37 45 63 b) 2 9 4 13 18 37 45 63 c) 13 2 4 9 18 45 37 63 d) 2 4 9 13 18 45 37 63
  • 61. Analysis and Design of Algorithms  What is the output of selection sort after the 2nd iteration given the following sequence of numbers: 13 2 9 4 18 45 37 63 a) 2 4 9 13 18 37 45 63 b) 2 9 4 13 18 37 45 63 c) 13 2 4 9 18 45 37 63 d) 2 4 9 13 18 45 37 63
  • 62. Analysis and Design of Algorithms  Python Code
  • 63. Analysis and Design of Algorithms
  • 64. Analysis and Design of Algorithms  Time Complexity: O(n2) as there are two nested loops  Example of worst case 2 3 4 5 1
  • 65. Analysis and Design of Algorithms Insertion Sort
  • 66. Analysis and Design of Algorithms Insertion sort is a simple sorting algorithm that works the way we sort playing cards in our hands.
  • 67. Analysis and Design of Algorithms  Algorithm:  Step1: Compare each pair of adjacent elements in the list  Step2: Insert element into the sorted list, until it occupies correct position.  Step3: Swap two element if necessary  Step4: Repeat this process for all the elements until the entire array is sorted
  • 68. Analysis and Design of Algorithms  Assume the following Array: 5 1 4 2
  • 69. Analysis and Design of Algorithms  Compare  Store= 5 1 4 2  i  j  j+1 1
  • 70. Analysis and Design of Algorithms  Move  Store= 5 4 2  i  j  j+1 1
  • 71. Analysis and Design of Algorithms  Move  Store= 1 5 4 2  i  j+1
  • 72. Analysis and Design of Algorithms  Compare  Store= 1 5 4 2  i  j 4  j+1
  • 73. Analysis and Design of Algorithms  Move  Store= 1 5 2  i  j 4  j+1
  • 74. Analysis and Design of Algorithms  Compare  Store= 1 5 2  i  j 4  j+1
  • 75. Analysis and Design of Algorithms  Move  Store= 1 4 5 2  i  j  j+1
  • 76. Analysis and Design of Algorithms  Compare  Store= 1 4 5 2  i  j 2  j+1
  • 77. Analysis and Design of Algorithms  Move  Store= 1 4 5  i  j 2  j+1
  • 78. Analysis and Design of Algorithms  Compare  Store= 1 4 5  i  j 2  j+1
  • 79. Analysis and Design of Algorithms  Move  Store= 1 4 5  i  j 2  j+1
  • 80. Analysis and Design of Algorithms  Compare  Store= 1 4 5  i  j 2  j+1
  • 81. Analysis and Design of Algorithms  Compare  Store= 1 2 4 5  i  j  j+1
  • 82. Analysis and Design of Algorithms  Array is now sorted 1 2 4 5
  • 83. Analysis and Design of Algorithms 5 1 8 3 9 2  Example 2: 1 5 8 3 9 2 1 5 8 3 9 2 1 3 5 8 9 2 1 3 5 8 9 2 1 2 3 5 8 9 5 1 8 3 9 2
  • 84. Analysis and Design of Algorithms  What is the output of insertion sort after the 1st iteration given the following sequence of numbers: 7 3 5 1 9 8 4 6 a) 3 7 5 1 9 8 4 6 b) 1 3 7 5 9 8 4 6 c) 3 4 1 5 6 8 7 9 d) 1 3 4 5 6 7 8 9
  • 85. Analysis and Design of Algorithms  What is the output of insertion sort after the 1st iteration given the following sequence of numbers: 7 3 5 1 9 8 4 6 a) 3 7 5 1 9 8 4 6 b) 1 3 7 5 9 8 4 6 c) 3 4 1 5 6 8 7 9 d) 1 3 4 5 6 7 8 9
  • 86. Analysis and Design of Algorithms  What is the output of insertion sort after the 2nd iteration given the following sequence of numbers: 7 3 5 1 9 8 4 6 a) 3 5 7 1 9 8 4 6 b) 1 3 7 5 9 8 4 6 c) 3 4 1 5 6 8 7 9 d) 1 3 4 5 6 7 8 9
  • 87. Analysis and Design of Algorithms  What is the output of insertion sort after the 2nd iteration given the following sequence of numbers: 7 3 5 1 9 8 4 6 a) 3 5 7 1 9 8 4 6 b) 1 3 7 5 9 8 4 6 c) 3 4 1 5 6 8 7 9 d) 1 3 4 5 6 7 8 9
  • 88. Analysis and Design of Algorithms  Python Code
  • 89. Analysis and Design of Algorithms
  • 90. Analysis and Design of Algorithms  Time Complexity: O(n2)  Example of worst case 5 4 3 2 1
  • 91. Analysis and Design of Algorithms facebook.com/mloey mohamedloey@gmail.com twitter.com/mloey linkedin.com/in/mloey mloey@fci.bu.edu.eg mloey.github.io
  • 92. Analysis and Design of Algorithms www.YourCompany.com © 2020 Companyname PowerPoint Business Theme. All Rights Reserved. THANKS FOR YOUR TIME