SlideShare a Scribd company logo
Description: A detailed discussion about algorithms and their
measures, and understanding sorting.
Duration: 90 minutes
Starts at: Saturday 11th May 2013, 11:00AM
-by Dharmendra Prasad
1
Table of Contents
1. A detailed talk on algorithms.
2. Measuring the effectiveness of an algorithm.
3. Sorting Algorithms (In memory)
4. Some real world sorting scenarios.
2
Algorithm:
1. A step by step procedure to solve a given problem.
2. It takes an input and applies the sequence of steps to arrive
on a desired output.
3. Represented as a Pseudo Codes, which are English like
statements.
3
Analysis of Algorithms:
1. The theoretical study of computer program performance
and resource usage.
2. Things more important than the performance and resource
usage are:
1. Correctness
2. Simplicity
3. Features
4. User friendliness
5. Maintainability
6. Security
7. Algorithms
4
Why study performance if other things are more important than
performance?
Performance measures the line between the feasible or in feasible:
 E.g. : If something takes un limited time, it is not useful to us.
 If it takes a lot of space which is more than available , it is infeasible.
 Real time constraints, need the result on time else the result is not useful.
We are the decision makers when have to choose between performance and other
factors like user experience, maintainability etc.
Analyzing an algorithm means studying its performance in terms of running time,
space required, etc.
5
Sorting: The classic problem
Problem definition:
Input: We have a sequence <a1, a2, … , an> of numbers.
Output expected: A permutation <a1’, a2; …, an’> such that
a1’ <= a2’ <= a3’ … <=an’
Basic definition: Take a bunch of numbers and put them in order. Order
necessarily doesn’t mean increasing order. It can be
ascending/descending etc.
6
Sorting: The classic problem
Pseudo Code:
Insertion-Sort(A, n) // sorts A[1..n]
for j <- 2 to n
do key <- A[j];
i <- j-1
while i > 0 and A[i] > key
do A[i+1] <- A[i]
i = i -1
A[i+1] = key
7
A->
sorted
J
key
Sorting: The classic problem
Example:
8 2 4 9 3 6
2 8 4 9 3 6
2 4 8 9 3 6
2 4 8 9 3 6
2 3 4 8 9 6
2 3 4 6 8 9
8
Analyzing the above algorithm:
Running Time:
• Depends on the input (e.g. if it is already sorted)
• Depends on input size ( e.g. 10 elements vs. 10,000,000)
If the input is already sorted, Insertion Sort has nothing much to do.( This is
called the best case)
If the input is reverse sorted, Insertion sort will shuffle in each step and takes
the maximum possible time. ( This is called the worst case)
If the input is random that will be called as the average case.
Time taken in the above algorithm = Sum of the work inside the outer loop
T(n) =∑ f( j ) which is proportional to j²
You can also say as T(n) = θ(n²)
Can we say that insertion sort is fast?
9
Merge Sort:
Merge Sort A[1 .. n]
Step 1: if n = 1, done;
Step 2: Recursively sort A[1..(n/2)] and A[n/2 +1, n]
Step 3: Merge both the sorted lists.
Merge A, B
10
A B
1 2 7 9 11 12 13 20
How much time merging took ?
It just took n steps or we can say the work done is proportional to
n , hence the time taken will be:
T(n) proportional to n where n is the total number of elements in
the sorted array.
T(n) = θ(n)
Analyzing merge sort:
Step 1: How much this step takes?
Constant time, you just need to find the middle index of the
array. This means it is not dependent on the input size.
Also called θ(1)
Step 2: How much this step takes?
Time taken in sorting A[1, n/2] + Time taken in sorting A[n/2+1,
n]
Lets say that each of the two steps take T[n/2] time.
11
Step 3: The merge step took θ(n).
So the total time taken by the merge sort is a sum of all the
three steps. That can be defined as below:
θ (1) , if n =1
T(n) =
2T(n/2) + θ (n) if n > 1
Hence, T(n) = 2T(n/2) + c.n, where c > 0
12
13
Height of the above tree is : log n
T(n) = cn (log n) + something proportional to n
T(n) = cn (log n) + θ (n)
Hence T(n) = θ (n log n)
Comparing Insertion Sort and Merge Sort
Insertion sort time T(n) = θ(n²)
Merge sort time T’(n) = θ (n log n)
Which one do you think is more time?
14
Real life usage of sorting algorithm:
1) A cable operators personalized service.
2) Alphabetical arrangement of list of items on a shopping
website.
3) Offering admissions to applicants with highest grades.
And many more…
15
Question
&
Answers
16

More Related Content

What's hot

Analysis Of Algorithms I
Analysis Of Algorithms IAnalysis Of Algorithms I
Analysis Of Algorithms I
Sri Prasanna
 
Lecture 2 data structures and algorithms
Lecture 2 data structures and algorithmsLecture 2 data structures and algorithms
Lecture 2 data structures and algorithms
Aakash deep Singhal
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting Algorithms
multimedia9
 
Lect11 Sorting
Lect11 SortingLect11 Sorting
Lect11 Sorting
ryokollll
 

What's hot (20)

Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms IAlgorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
 
Data Structures and Algorithm Analysis
Data Structures  and  Algorithm AnalysisData Structures  and  Algorithm Analysis
Data Structures and Algorithm Analysis
 
Analysis Of Algorithms I
Analysis Of Algorithms IAnalysis Of Algorithms I
Analysis Of Algorithms I
 
Analysis and design of algorithms part2
Analysis and design of algorithms part2Analysis and design of algorithms part2
Analysis and design of algorithms part2
 
Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1Anlysis and design of algorithms part 1
Anlysis and design of algorithms part 1
 
Algorithm analysis (All in one)
Algorithm analysis (All in one)Algorithm analysis (All in one)
Algorithm analysis (All in one)
 
Algorithm And analysis Lecture 03& 04-time complexity.
 Algorithm And analysis Lecture 03& 04-time complexity. Algorithm And analysis Lecture 03& 04-time complexity.
Algorithm And analysis Lecture 03& 04-time complexity.
 
Sorting
SortingSorting
Sorting
 
Merge sort
Merge sortMerge sort
Merge sort
 
Daa unit 2
Daa unit 2Daa unit 2
Daa unit 2
 
Lecture 2 data structures and algorithms
Lecture 2 data structures and algorithmsLecture 2 data structures and algorithms
Lecture 2 data structures and algorithms
 
Quick Sort , Merge Sort , Heap Sort
Quick Sort , Merge Sort ,  Heap SortQuick Sort , Merge Sort ,  Heap Sort
Quick Sort , Merge Sort , Heap Sort
 
CS8461 - Design and Analysis of Algorithms
CS8461 - Design and Analysis of AlgorithmsCS8461 - Design and Analysis of Algorithms
CS8461 - Design and Analysis of Algorithms
 
CS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of AlgorithmsCS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of Algorithms
 
Introduction to Algorithms
Introduction to AlgorithmsIntroduction to Algorithms
Introduction to Algorithms
 
chapter 1
chapter 1chapter 1
chapter 1
 
Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)Performance analysis(Time & Space Complexity)
Performance analysis(Time & Space Complexity)
 
Sorting Algorithms
Sorting AlgorithmsSorting Algorithms
Sorting Algorithms
 
Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis Introduction to Algorithms Complexity Analysis
Introduction to Algorithms Complexity Analysis
 
Lect11 Sorting
Lect11 SortingLect11 Sorting
Lect11 Sorting
 

Viewers also liked (12)

Lecture 2a arrays
Lecture 2a arraysLecture 2a arrays
Lecture 2a arrays
 
Lecture 2c stacks
Lecture 2c stacksLecture 2c stacks
Lecture 2c stacks
 
Lecture 3 data structures & algorithms - sorting techniques - http://techiem...
Lecture 3  data structures & algorithms - sorting techniques - http://techiem...Lecture 3  data structures & algorithms - sorting techniques - http://techiem...
Lecture 3 data structures & algorithms - sorting techniques - http://techiem...
 
Arrays
ArraysArrays
Arrays
 
C# Arrays
C# ArraysC# Arrays
C# Arrays
 
Arrays C#
Arrays C#Arrays C#
Arrays C#
 
queue & its applications
queue & its applicationsqueue & its applications
queue & its applications
 
Lecture17 arrays.ppt
Lecture17 arrays.pptLecture17 arrays.ppt
Lecture17 arrays.ppt
 
Array ppt
Array pptArray ppt
Array ppt
 
Arrays Basics
Arrays BasicsArrays Basics
Arrays Basics
 
Arrays
ArraysArrays
Arrays
 
Array in c language
Array in c languageArray in c language
Array in c language
 

Similar to Lecture 2 data structures & algorithms - sorting techniques

Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
Qundeel
 
Data Structure
Data StructureData Structure
Data Structure
sheraz1
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
Qundeel
 
Insersion & Bubble Sort in Algoritm
Insersion & Bubble Sort in AlgoritmInsersion & Bubble Sort in Algoritm
Insersion & Bubble Sort in Algoritm
Ehsan Ehrari
 
Data Structure & Algorithms - Mathematical
Data Structure & Algorithms - MathematicalData Structure & Algorithms - Mathematical
Data Structure & Algorithms - Mathematical
babuk110
 
Tri Merge Sorting Algorithm
Tri Merge Sorting AlgorithmTri Merge Sorting Algorithm
Tri Merge Sorting Algorithm
Ashim Sikder
 
Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptx
rajesshs31r
 

Similar to Lecture 2 data structures & algorithms - sorting techniques (20)

TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS
TIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMSTIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMS
TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS
 
Analysis of algorithms
Analysis of algorithmsAnalysis of algorithms
Analysis of algorithms
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
 
Data Structure
Data StructureData Structure
Data Structure
 
Lec 1 Ds
Lec 1 DsLec 1 Ds
Lec 1 Ds
 
my docoment
my docomentmy docoment
my docoment
 
Insersion & Bubble Sort in Algoritm
Insersion & Bubble Sort in AlgoritmInsersion & Bubble Sort in Algoritm
Insersion & Bubble Sort in Algoritm
 
Ds
DsDs
Ds
 
Data Structure & Algorithms - Mathematical
Data Structure & Algorithms - MathematicalData Structure & Algorithms - Mathematical
Data Structure & Algorithms - Mathematical
 
Algorithms - "Chapter 2 getting started"
Algorithms - "Chapter 2 getting started"Algorithms - "Chapter 2 getting started"
Algorithms - "Chapter 2 getting started"
 
DATA STRUCTURE.pdf
DATA STRUCTURE.pdfDATA STRUCTURE.pdf
DATA STRUCTURE.pdf
 
DATA STRUCTURE
DATA STRUCTUREDATA STRUCTURE
DATA STRUCTURE
 
Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0Algorithms with-java-advanced-1.0
Algorithms with-java-advanced-1.0
 
DATA STRUCTURE AND ALGORITHM FULL NOTES
DATA STRUCTURE AND ALGORITHM FULL NOTESDATA STRUCTURE AND ALGORITHM FULL NOTES
DATA STRUCTURE AND ALGORITHM FULL NOTES
 
Searching Algorithms
Searching AlgorithmsSearching Algorithms
Searching Algorithms
 
DESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITY
DESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITYDESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITY
DESIGN AND ALGORITHM.pptx BCA BANGALORECITY UNIVERSITY
 
Chapter 4 ds
Chapter 4 dsChapter 4 ds
Chapter 4 ds
 
Analysis of algorithms
Analysis of algorithmsAnalysis of algorithms
Analysis of algorithms
 
Tri Merge Sorting Algorithm
Tri Merge Sorting AlgorithmTri Merge Sorting Algorithm
Tri Merge Sorting Algorithm
 
Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptx
 

Recently uploaded

Recently uploaded (20)

Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Lecture 2 data structures & algorithms - sorting techniques

  • 1. Description: A detailed discussion about algorithms and their measures, and understanding sorting. Duration: 90 minutes Starts at: Saturday 11th May 2013, 11:00AM -by Dharmendra Prasad 1
  • 2. Table of Contents 1. A detailed talk on algorithms. 2. Measuring the effectiveness of an algorithm. 3. Sorting Algorithms (In memory) 4. Some real world sorting scenarios. 2
  • 3. Algorithm: 1. A step by step procedure to solve a given problem. 2. It takes an input and applies the sequence of steps to arrive on a desired output. 3. Represented as a Pseudo Codes, which are English like statements. 3
  • 4. Analysis of Algorithms: 1. The theoretical study of computer program performance and resource usage. 2. Things more important than the performance and resource usage are: 1. Correctness 2. Simplicity 3. Features 4. User friendliness 5. Maintainability 6. Security 7. Algorithms 4
  • 5. Why study performance if other things are more important than performance? Performance measures the line between the feasible or in feasible:  E.g. : If something takes un limited time, it is not useful to us.  If it takes a lot of space which is more than available , it is infeasible.  Real time constraints, need the result on time else the result is not useful. We are the decision makers when have to choose between performance and other factors like user experience, maintainability etc. Analyzing an algorithm means studying its performance in terms of running time, space required, etc. 5
  • 6. Sorting: The classic problem Problem definition: Input: We have a sequence <a1, a2, … , an> of numbers. Output expected: A permutation <a1’, a2; …, an’> such that a1’ <= a2’ <= a3’ … <=an’ Basic definition: Take a bunch of numbers and put them in order. Order necessarily doesn’t mean increasing order. It can be ascending/descending etc. 6
  • 7. Sorting: The classic problem Pseudo Code: Insertion-Sort(A, n) // sorts A[1..n] for j <- 2 to n do key <- A[j]; i <- j-1 while i > 0 and A[i] > key do A[i+1] <- A[i] i = i -1 A[i+1] = key 7 A-> sorted J key
  • 8. Sorting: The classic problem Example: 8 2 4 9 3 6 2 8 4 9 3 6 2 4 8 9 3 6 2 4 8 9 3 6 2 3 4 8 9 6 2 3 4 6 8 9 8
  • 9. Analyzing the above algorithm: Running Time: • Depends on the input (e.g. if it is already sorted) • Depends on input size ( e.g. 10 elements vs. 10,000,000) If the input is already sorted, Insertion Sort has nothing much to do.( This is called the best case) If the input is reverse sorted, Insertion sort will shuffle in each step and takes the maximum possible time. ( This is called the worst case) If the input is random that will be called as the average case. Time taken in the above algorithm = Sum of the work inside the outer loop T(n) =∑ f( j ) which is proportional to j² You can also say as T(n) = θ(n²) Can we say that insertion sort is fast? 9
  • 10. Merge Sort: Merge Sort A[1 .. n] Step 1: if n = 1, done; Step 2: Recursively sort A[1..(n/2)] and A[n/2 +1, n] Step 3: Merge both the sorted lists. Merge A, B 10 A B 1 2 7 9 11 12 13 20
  • 11. How much time merging took ? It just took n steps or we can say the work done is proportional to n , hence the time taken will be: T(n) proportional to n where n is the total number of elements in the sorted array. T(n) = θ(n) Analyzing merge sort: Step 1: How much this step takes? Constant time, you just need to find the middle index of the array. This means it is not dependent on the input size. Also called θ(1) Step 2: How much this step takes? Time taken in sorting A[1, n/2] + Time taken in sorting A[n/2+1, n] Lets say that each of the two steps take T[n/2] time. 11
  • 12. Step 3: The merge step took θ(n). So the total time taken by the merge sort is a sum of all the three steps. That can be defined as below: θ (1) , if n =1 T(n) = 2T(n/2) + θ (n) if n > 1 Hence, T(n) = 2T(n/2) + c.n, where c > 0 12
  • 13. 13
  • 14. Height of the above tree is : log n T(n) = cn (log n) + something proportional to n T(n) = cn (log n) + θ (n) Hence T(n) = θ (n log n) Comparing Insertion Sort and Merge Sort Insertion sort time T(n) = θ(n²) Merge sort time T’(n) = θ (n log n) Which one do you think is more time? 14
  • 15. Real life usage of sorting algorithm: 1) A cable operators personalized service. 2) Alphabetical arrangement of list of items on a shopping website. 3) Offering admissions to applicants with highest grades. And many more… 15