SlideShare a Scribd company logo
1 of 32
Download to read offline
Algorithms

Sandeep Kumar Poonia
Head Of Dept. CS/IT
B.E., M.Tech., UGC-NET
LM-IAENG, LM-IACSIT,LM-CSTA, LM-AIRCC, LM-SCIEI, AM-UACEE
Algorithms
Linear-Time Sorting Algorithms

Sandeep Kumar Poonia

2/19/2012
Sorting So Far


Insertion sort:








Easy to code
Fast on small inputs (less than ~50 elements)
Fast on nearly-sorted inputs
O(n2) worst case
O(n2) average (equally-likely inputs) case
O(n2) reverse-sorted case

Sandeep Kumar Poonia

2/19/2012
Sorting So Far


Merge sort:


Divide-and-conquer:
 Split

array in half
 Recursively sort subarrays
 Linear-time merge step



O(n lg n) worst case
Doesn’t sort in place

Sandeep Kumar Poonia

2/19/2012
Sorting So Far


Heap sort:


Uses the very useful heap data structure
 Complete

binary tree
 Heap property: parent key > children’s keys



O(n lg n) worst case
Sorts in place

Sandeep Kumar Poonia

2/19/2012
Sorting So Far


Quick sort:


Divide-and-conquer:
 Partition

array into two subarrays, recursively sort
 All of first subarray < all of second subarray
 No merge step needed!





O(n lg n) average case
Fast in practice
O(n2) worst case
 Naïve

implementation: worst case on sorted input
 Address this with randomized quicksort
Sandeep Kumar Poonia

2/19/2012
How Fast Can We Sort?


We will provide a lower bound, then beat it




How do you suppose we’ll beat it?

First, an observation: all of the sorting
algorithms so far are comparison sorts




The only operation used to gain ordering
information about a sequence is the pairwise
comparison of two elements
Theorem: all comparison sorts are (n lg n)
A

comparison sort must do O(n) comparisons (why?)
 What about the gap between O(n) and O(n lg n)
Sandeep Kumar Poonia

2/19/2012
Decision Trees


Decision trees provide an abstraction of
comparison sorts


A decision tree represents the comparisons made
by a comparison sort. Every thing else ignored

What do the leaves represent?
 How many leaves must there be?


Sandeep Kumar Poonia

2/19/2012
Decision Trees

Sandeep Kumar Poonia

2/19/2012
Decision Trees


Decision trees can model comparison sorts.
For a given algorithm:





One tree for each n
Tree paths are all possible execution traces
What’s the longest path in a decision tree for
insertion sort? For merge sort?

What is the asymptotic height of any decision
tree for sorting n elements?
 Answer: (n lg n)


Sandeep Kumar Poonia

2/19/2012
Lower Bound For
Comparison Sorting
Theorem: Any decision tree that sorts n
elements has height (n lg n)
 What’s the minimum # of leaves?
 What’s the maximum # of leaves of a binary
tree of height h?
 Clearly the minimum # of leaves is less than or
equal to the maximum # of leaves


Sandeep Kumar Poonia

2/19/2012
Lower Bound For
Comparison Sorting
So we have…
n!  2h
 Taking logarithms:
lg (n!)  h
 Stirling’s approximation tells us:


n



n
n!   
e
n
n
Thus: h  lg 
e

Sandeep Kumar Poonia

2/19/2012
Lower Bound For
Comparison Sorting


So we have
n
h  lg  
e

n

 n lg n  n lg e
 n lg n 


Thus the minimum height of a decision tree is
(n lg n)

Sandeep Kumar Poonia

2/19/2012
Lower Bound For
Comparison Sorts
Thus the time to comparison sort n elements is
(n lg n)
 Corollary: Heapsort and Mergesort are
asymptotically optimal comparison sorts
 But the name of this lecture is “Sorting in
linear time”!




How can we do better than (n lg n)?

Sandeep Kumar Poonia

2/19/2012
Sorting In Linear Time


Counting sort



No comparisons between elements!
But…depends on assumption about the numbers
being sorted
 We



assume numbers are in the range 1.. k

The algorithm:
A[1..n], where A[j]  {1, 2, 3, …, k}
 Output: B[1..n], sorted (notice: not sorting in place)
 Also: Array C[1..k] for auxiliary storage
 Input:

Sandeep Kumar Poonia

2/19/2012
Counting Sort
1
2
3
4
5
6
7
8
9
10

CountingSort(A, B, k)
for i=0 to k
C[i]= 0;
for j=1 to n
C[A[j]]= C[A[j]] + 1;
for i=2 to k
C[i] = C[i] + C[i-1];
for j=n downto 1
B[C[A[j]]] = A[j];
C[A[j]] = C[A[j]] - 1;

Sandeep Kumar Poonia

2/19/2012
Counting Sort
1
2
3
4
5
6
7
8
9
10

CountingSort(A, B, k)
for i=1 to k
Takes time O(k)
C[i]= 0;
for j=1 to n
C[A[j]] += 1;
for i=2 to k
C[i] = C[i] + C[i-1];
Takes time O(n)
for j=n downto 1
B[C[A[j]]] = A[j];
C[A[j]] -= 1;

What will be the running time?

Sandeep Kumar Poonia

2/19/2012
Counting Sort


Total time: O(n + k)





Usually, k = O(n)
Thus counting sort runs in O(n) time

But sorting is (n lg n)!




No contradiction--this is not a comparison sort (in
fact, there are no comparisons at all!)
Notice that this algorithm is stable

Sandeep Kumar Poonia

2/19/2012
Counting Sort
Cool! Why don’t we always use counting sort?
 Because it depends on range k of elements
 Could we use counting sort to sort 32 bit
integers? Why or why not?
 Answer: no, k too large (232 = 4,294,967,296)


Sandeep Kumar Poonia

2/19/2012
Counting Sort
How did IBM get rich originally?
 Answer: punched card readers for census
tabulation in early 1900’s.




In particular, a card sorter that could sort cards
into different bins
 Each

column can be punched in 12 places
 Decimal digits use 10 places


Problem: only one column can be sorted on at a
time

Sandeep Kumar Poonia

2/19/2012
Radix Sort
Intuitively, you might sort on the most
significant digit, then the second msd, etc.
 Problem: lots of intermediate piles of cards to
keep track of
 Key idea: sort the least significant digit first


RadixSort(A, d)
for i=1 to d
StableSort(A) on digit i

Sandeep Kumar Poonia

2/19/2012
Radix Sort

Sandeep Kumar Poonia

2/19/2012
Radix Sort
Can we prove it will work?
 Sketch of an inductive argument (induction on
the number of passes):





Assume lower-order digits {j: j<i}are sorted
Show that sorting next digit i leaves array correctly
sorted
 If

two digits at position i are different, ordering numbers
by that digit is correct (lower-order digits irrelevant)
 If they are the same, numbers are already sorted on the
lower-order digits. Since we use a stable sort, the
numbers stay in the right order
Sandeep Kumar Poonia

2/19/2012
Radix Sort

Sandeep Kumar Poonia

2/19/2012
Radix Sort

Sandeep Kumar Poonia

2/19/2012
Radix Sort
Example

Sandeep Kumar Poonia

2/19/2012
Radix Sort


Problem:

Sandeep Kumar Poonia

2/19/2012
Radix Sort


In general, radix sort based on counting sort is






Fast
Asymptotically fast (i.e., O(n))
Simple to code
A good choice

Sandeep Kumar Poonia

2/19/2012
Bucket Sort


Bucket sort



Assumption: input is n reals from [0, 1)
Basic idea:
 Create

n linked lists (buckets) to divide interval [0,1)
into subintervals of size 1/n
 Add each input element to appropriate bucket and sort
buckets with insertion sort


Uniform input distribution  O(1) bucket size
 Therefore



the expected total time is O(n)

These ideas will return when we study hash tables

Sandeep Kumar Poonia

2/19/2012
Bucket Sort

Sandeep Kumar Poonia

2/19/2012
Bucket Sort

Sandeep Kumar Poonia

2/19/2012
Bucket Sort

Sandeep Kumar Poonia

2/19/2012

More Related Content

What's hot

Asymptotic analysis
Asymptotic analysisAsymptotic analysis
Asymptotic analysisSoujanya V
 
Unit 1 introduction to data structure
Unit 1   introduction to data structureUnit 1   introduction to data structure
Unit 1 introduction to data structurekalyanineve
 
Stressen's matrix multiplication
Stressen's matrix multiplicationStressen's matrix multiplication
Stressen's matrix multiplicationKumar
 
Design and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptxDesign and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptxSyed Zaid Irshad
 
Algorithm: Quick-Sort
Algorithm: Quick-SortAlgorithm: Quick-Sort
Algorithm: Quick-SortTareq Hasan
 
Quick sort-Data Structure
Quick sort-Data StructureQuick sort-Data Structure
Quick sort-Data StructureJeanie Arnoco
 
Insertion sort
Insertion sortInsertion sort
Insertion sortalmaqboli
 
15 puzzle problem using branch and bound
15 puzzle problem using branch and bound15 puzzle problem using branch and bound
15 puzzle problem using branch and boundAbhishek Singh
 
Algorithms Lecture 7: Graph Algorithms
Algorithms Lecture 7: Graph AlgorithmsAlgorithms Lecture 7: Graph Algorithms
Algorithms Lecture 7: Graph AlgorithmsMohamed Loey
 
Divide and conquer - Quick sort
Divide and conquer - Quick sortDivide and conquer - Quick sort
Divide and conquer - Quick sortMadhu Bala
 
Code optimization in compiler design
Code optimization in compiler designCode optimization in compiler design
Code optimization in compiler designKuppusamy P
 
Algorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IAlgorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IMohamed Loey
 

What's hot (20)

Time and Space Complexity
Time and Space ComplexityTime and Space Complexity
Time and Space Complexity
 
Asymptotic Notation
Asymptotic NotationAsymptotic Notation
Asymptotic Notation
 
Asymptotic analysis
Asymptotic analysisAsymptotic analysis
Asymptotic analysis
 
Unit 1 introduction to data structure
Unit 1   introduction to data structureUnit 1   introduction to data structure
Unit 1 introduction to data structure
 
Merge sort algorithm
Merge sort algorithmMerge sort algorithm
Merge sort algorithm
 
Stressen's matrix multiplication
Stressen's matrix multiplicationStressen's matrix multiplication
Stressen's matrix multiplication
 
Design and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptxDesign and Analysis of Algorithms.pptx
Design and Analysis of Algorithms.pptx
 
Algorithm: Quick-Sort
Algorithm: Quick-SortAlgorithm: Quick-Sort
Algorithm: Quick-Sort
 
Quick sort-Data Structure
Quick sort-Data StructureQuick sort-Data Structure
Quick sort-Data Structure
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
String matching algorithm
String matching algorithmString matching algorithm
String matching algorithm
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1   chapter 1 Design and Analysis of AlgorithmsUnit 1   chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
 
Top down parsing
Top down parsingTop down parsing
Top down parsing
 
15 puzzle problem using branch and bound
15 puzzle problem using branch and bound15 puzzle problem using branch and bound
15 puzzle problem using branch and bound
 
Algorithms Lecture 7: Graph Algorithms
Algorithms Lecture 7: Graph AlgorithmsAlgorithms Lecture 7: Graph Algorithms
Algorithms Lecture 7: Graph Algorithms
 
Daa unit 1
Daa unit 1Daa unit 1
Daa unit 1
 
Red black trees
Red black treesRed black trees
Red black trees
 
Divide and conquer - Quick sort
Divide and conquer - Quick sortDivide and conquer - Quick sort
Divide and conquer - Quick sort
 
Code optimization in compiler design
Code optimization in compiler designCode optimization in compiler design
Code optimization in compiler design
 
Algorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IAlgorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms I
 

Viewers also liked

06 Analysis of Algorithms: Sorting in Linear Time
06 Analysis of Algorithms:  Sorting in Linear Time06 Analysis of Algorithms:  Sorting in Linear Time
06 Analysis of Algorithms: Sorting in Linear TimeAndres Mendez-Vazquez
 
Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS oGuild .
 
iBeacons: Security and Privacy?
iBeacons: Security and Privacy?iBeacons: Security and Privacy?
iBeacons: Security and Privacy?Jim Fenton
 
Interfaces to ubiquitous computing
Interfaces to ubiquitous computingInterfaces to ubiquitous computing
Interfaces to ubiquitous computingswati sonawane
 
Demystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and ToothpickDemystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and ToothpickDanny Preussler
 
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...Paolo Sammicheli
 
HUG Ireland Event Presentation - In-Memory Databases
HUG Ireland Event Presentation - In-Memory DatabasesHUG Ireland Event Presentation - In-Memory Databases
HUG Ireland Event Presentation - In-Memory DatabasesJohn Mulhall
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPTMohit Kumar
 
Privacy Concerns and Social Robots
Privacy Concerns and Social Robots Privacy Concerns and Social Robots
Privacy Concerns and Social Robots Christoph Lutz
 
Skiena algorithm 2007 lecture07 heapsort priority queues
Skiena algorithm 2007 lecture07 heapsort priority queuesSkiena algorithm 2007 lecture07 heapsort priority queues
Skiena algorithm 2007 lecture07 heapsort priority queueszukun
 
ScrumGuides training: Agile Software Development With Scrum
ScrumGuides training: Agile Software Development With ScrumScrumGuides training: Agile Software Development With Scrum
ScrumGuides training: Agile Software Development With ScrumAlexey Krivitsky
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesFellowBuddy.com
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Daniele Pallastrelli
 
09 Machine Learning - Introduction Support Vector Machines
09 Machine Learning - Introduction Support Vector Machines09 Machine Learning - Introduction Support Vector Machines
09 Machine Learning - Introduction Support Vector MachinesAndres Mendez-Vazquez
 
Final Year Project-Gesture Based Interaction and Image Processing
Final Year Project-Gesture Based Interaction and Image ProcessingFinal Year Project-Gesture Based Interaction and Image Processing
Final Year Project-Gesture Based Interaction and Image ProcessingSabnam Pandey, MBA
 
In-Memory Database Performance on AWS M4 Instances
In-Memory Database Performance on AWS M4 InstancesIn-Memory Database Performance on AWS M4 Instances
In-Memory Database Performance on AWS M4 InstancesSingleStore
 

Viewers also liked (20)

06 Analysis of Algorithms: Sorting in Linear Time
06 Analysis of Algorithms:  Sorting in Linear Time06 Analysis of Algorithms:  Sorting in Linear Time
06 Analysis of Algorithms: Sorting in Linear Time
 
Data structure linear search
Data structure linear searchData structure linear search
Data structure linear search
 
Linear sorting
Linear sortingLinear sorting
Linear sorting
 
Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS Agile for Embedded & System Software Development : Presented by Priyank KS
Agile for Embedded & System Software Development : Presented by Priyank KS
 
3.7 heap sort
3.7 heap sort3.7 heap sort
3.7 heap sort
 
iBeacons: Security and Privacy?
iBeacons: Security and Privacy?iBeacons: Security and Privacy?
iBeacons: Security and Privacy?
 
Interfaces to ubiquitous computing
Interfaces to ubiquitous computingInterfaces to ubiquitous computing
Interfaces to ubiquitous computing
 
Dependency Injection with Apex
Dependency Injection with ApexDependency Injection with Apex
Dependency Injection with Apex
 
Demystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and ToothpickDemystifying dependency Injection: Dagger and Toothpick
Demystifying dependency Injection: Dagger and Toothpick
 
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
Agile London: Industrial Agility, How to respond to the 4th Industrial Revolu...
 
HUG Ireland Event Presentation - In-Memory Databases
HUG Ireland Event Presentation - In-Memory DatabasesHUG Ireland Event Presentation - In-Memory Databases
HUG Ireland Event Presentation - In-Memory Databases
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Privacy Concerns and Social Robots
Privacy Concerns and Social Robots Privacy Concerns and Social Robots
Privacy Concerns and Social Robots
 
Skiena algorithm 2007 lecture07 heapsort priority queues
Skiena algorithm 2007 lecture07 heapsort priority queuesSkiena algorithm 2007 lecture07 heapsort priority queues
Skiena algorithm 2007 lecture07 heapsort priority queues
 
ScrumGuides training: Agile Software Development With Scrum
ScrumGuides training: Agile Software Development With ScrumScrumGuides training: Agile Software Development With Scrum
ScrumGuides training: Agile Software Development With Scrum
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture Notes
 
Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++Going native with less coupling: Dependency Injection in C++
Going native with less coupling: Dependency Injection in C++
 
09 Machine Learning - Introduction Support Vector Machines
09 Machine Learning - Introduction Support Vector Machines09 Machine Learning - Introduction Support Vector Machines
09 Machine Learning - Introduction Support Vector Machines
 
Final Year Project-Gesture Based Interaction and Image Processing
Final Year Project-Gesture Based Interaction and Image ProcessingFinal Year Project-Gesture Based Interaction and Image Processing
Final Year Project-Gesture Based Interaction and Image Processing
 
In-Memory Database Performance on AWS M4 Instances
In-Memory Database Performance on AWS M4 InstancesIn-Memory Database Performance on AWS M4 Instances
In-Memory Database Performance on AWS M4 Instances
 

Similar to Linear time sorting algorithms

lecture 9
lecture 9lecture 9
lecture 9sajinsc
 
Counting Sort Lowerbound
Counting Sort LowerboundCounting Sort Lowerbound
Counting Sort Lowerbounddespicable me
 
lecture 10
lecture 10lecture 10
lecture 10sajinsc
 
Algorithm Design and Complexity - Course 5
Algorithm Design and Complexity - Course 5Algorithm Design and Complexity - Course 5
Algorithm Design and Complexity - Course 5Traian Rebedea
 
Algorithms - Rocksolid Tour 2013
Algorithms  - Rocksolid Tour 2013Algorithms  - Rocksolid Tour 2013
Algorithms - Rocksolid Tour 2013Gary Short
 
07 Analysis of Algorithms: Order Statistics
07 Analysis of Algorithms: Order Statistics07 Analysis of Algorithms: Order Statistics
07 Analysis of Algorithms: Order StatisticsAndres Mendez-Vazquez
 
What is Algorithm - An Overview
What is Algorithm - An OverviewWhat is Algorithm - An Overview
What is Algorithm - An OverviewRamakant Soni
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.pptjvjfvvoa
 
Top school in delhi ncr
Top school in delhi ncrTop school in delhi ncr
Top school in delhi ncrEdhole.com
 
Merge sort analysis and its real time applications
Merge sort analysis and its real time applicationsMerge sort analysis and its real time applications
Merge sort analysis and its real time applicationsyazad dumasia
 
Binary Search Trees of Almost Optimal Height
Binary Search Trees of Almost Optimal HeightBinary Search Trees of Almost Optimal Height
Binary Search Trees of Almost Optimal HeightSimone Tino
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1Amrinder Arora
 

Similar to Linear time sorting algorithms (19)

lecture 9
lecture 9lecture 9
lecture 9
 
Counting Sort Lowerbound
Counting Sort LowerboundCounting Sort Lowerbound
Counting Sort Lowerbound
 
Recurrences
RecurrencesRecurrences
Recurrences
 
Sorting2
Sorting2Sorting2
Sorting2
 
Introduction to algorithms
Introduction to algorithmsIntroduction to algorithms
Introduction to algorithms
 
lecture 10
lecture 10lecture 10
lecture 10
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Cis435 week06
Cis435 week06Cis435 week06
Cis435 week06
 
Lect01
Lect01Lect01
Lect01
 
Algorithm Design and Complexity - Course 5
Algorithm Design and Complexity - Course 5Algorithm Design and Complexity - Course 5
Algorithm Design and Complexity - Course 5
 
Algorithms - Rocksolid Tour 2013
Algorithms  - Rocksolid Tour 2013Algorithms  - Rocksolid Tour 2013
Algorithms - Rocksolid Tour 2013
 
07 Analysis of Algorithms: Order Statistics
07 Analysis of Algorithms: Order Statistics07 Analysis of Algorithms: Order Statistics
07 Analysis of Algorithms: Order Statistics
 
Coding Concept.ppt
Coding Concept.pptCoding Concept.ppt
Coding Concept.ppt
 
What is Algorithm - An Overview
What is Algorithm - An OverviewWhat is Algorithm - An Overview
What is Algorithm - An Overview
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.ppt
 
Top school in delhi ncr
Top school in delhi ncrTop school in delhi ncr
Top school in delhi ncr
 
Merge sort analysis and its real time applications
Merge sort analysis and its real time applicationsMerge sort analysis and its real time applications
Merge sort analysis and its real time applications
 
Binary Search Trees of Almost Optimal Height
Binary Search Trees of Almost Optimal HeightBinary Search Trees of Almost Optimal Height
Binary Search Trees of Almost Optimal Height
 
Divide and Conquer - Part 1
Divide and Conquer - Part 1Divide and Conquer - Part 1
Divide and Conquer - Part 1
 

More from Dr Sandeep Kumar Poonia

An improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithmAn improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithmDr Sandeep Kumar Poonia
 
Modified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmDr Sandeep Kumar Poonia
 
Enhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmEnhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmDr Sandeep Kumar Poonia
 
Memetic search in differential evolution algorithm
Memetic search in differential evolution algorithmMemetic search in differential evolution algorithm
Memetic search in differential evolution algorithmDr Sandeep Kumar Poonia
 
Improved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmImproved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmDr Sandeep Kumar Poonia
 
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmComparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmDr Sandeep Kumar Poonia
 
A novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmA novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmDr Sandeep Kumar Poonia
 
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsMultiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsDr Sandeep Kumar Poonia
 
Sunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmSunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmDr Sandeep Kumar Poonia
 
New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm Dr Sandeep Kumar Poonia
 
Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Dr Sandeep Kumar Poonia
 
Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Dr Sandeep Kumar Poonia
 

More from Dr Sandeep Kumar Poonia (20)

Soft computing
Soft computingSoft computing
Soft computing
 
An improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithmAn improved memetic search in artificial bee colony algorithm
An improved memetic search in artificial bee colony algorithm
 
Modified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithmModified position update in spider monkey optimization algorithm
Modified position update in spider monkey optimization algorithm
 
Enhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithmEnhanced local search in artificial bee colony algorithm
Enhanced local search in artificial bee colony algorithm
 
RMABC
RMABCRMABC
RMABC
 
Memetic search in differential evolution algorithm
Memetic search in differential evolution algorithmMemetic search in differential evolution algorithm
Memetic search in differential evolution algorithm
 
Improved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithmImproved onlooker bee phase in artificial bee colony algorithm
Improved onlooker bee phase in artificial bee colony algorithm
 
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithmComparative study of_hybrids_of_artificial_bee_colony_algorithm
Comparative study of_hybrids_of_artificial_bee_colony_algorithm
 
A novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithmA novel hybrid crossover based abc algorithm
A novel hybrid crossover based abc algorithm
 
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked listsMultiplication of two 3 d sparse matrices using 1d arrays and linked lists
Multiplication of two 3 d sparse matrices using 1d arrays and linked lists
 
Sunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithmSunzip user tool for data reduction using huffman algorithm
Sunzip user tool for data reduction using huffman algorithm
 
New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm New Local Search Strategy in Artificial Bee Colony Algorithm
New Local Search Strategy in Artificial Bee Colony Algorithm
 
A new approach of program slicing
A new approach of program slicingA new approach of program slicing
A new approach of program slicing
 
Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...Performance evaluation of different routing protocols in wsn using different ...
Performance evaluation of different routing protocols in wsn using different ...
 
Enhanced abc algo for tsp
Enhanced abc algo for tspEnhanced abc algo for tsp
Enhanced abc algo for tsp
 
Database aggregation using metadata
Database aggregation using metadataDatabase aggregation using metadata
Database aggregation using metadata
 
Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...Performance evaluation of diff routing protocols in wsn using difft network p...
Performance evaluation of diff routing protocols in wsn using difft network p...
 
Lecture28 tsp
Lecture28 tspLecture28 tsp
Lecture28 tsp
 
Lecture27 linear programming
Lecture27 linear programmingLecture27 linear programming
Lecture27 linear programming
 
Lecture26
Lecture26Lecture26
Lecture26
 

Recently uploaded

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxAnaBeatriceAblay2
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 

Recently uploaded (20)

POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 

Linear time sorting algorithms

  • 1. Algorithms Sandeep Kumar Poonia Head Of Dept. CS/IT B.E., M.Tech., UGC-NET LM-IAENG, LM-IACSIT,LM-CSTA, LM-AIRCC, LM-SCIEI, AM-UACEE
  • 3. Sorting So Far  Insertion sort:       Easy to code Fast on small inputs (less than ~50 elements) Fast on nearly-sorted inputs O(n2) worst case O(n2) average (equally-likely inputs) case O(n2) reverse-sorted case Sandeep Kumar Poonia 2/19/2012
  • 4. Sorting So Far  Merge sort:  Divide-and-conquer:  Split array in half  Recursively sort subarrays  Linear-time merge step   O(n lg n) worst case Doesn’t sort in place Sandeep Kumar Poonia 2/19/2012
  • 5. Sorting So Far  Heap sort:  Uses the very useful heap data structure  Complete binary tree  Heap property: parent key > children’s keys   O(n lg n) worst case Sorts in place Sandeep Kumar Poonia 2/19/2012
  • 6. Sorting So Far  Quick sort:  Divide-and-conquer:  Partition array into two subarrays, recursively sort  All of first subarray < all of second subarray  No merge step needed!    O(n lg n) average case Fast in practice O(n2) worst case  Naïve implementation: worst case on sorted input  Address this with randomized quicksort Sandeep Kumar Poonia 2/19/2012
  • 7. How Fast Can We Sort?  We will provide a lower bound, then beat it   How do you suppose we’ll beat it? First, an observation: all of the sorting algorithms so far are comparison sorts   The only operation used to gain ordering information about a sequence is the pairwise comparison of two elements Theorem: all comparison sorts are (n lg n) A comparison sort must do O(n) comparisons (why?)  What about the gap between O(n) and O(n lg n) Sandeep Kumar Poonia 2/19/2012
  • 8. Decision Trees  Decision trees provide an abstraction of comparison sorts  A decision tree represents the comparisons made by a comparison sort. Every thing else ignored What do the leaves represent?  How many leaves must there be?  Sandeep Kumar Poonia 2/19/2012
  • 9. Decision Trees Sandeep Kumar Poonia 2/19/2012
  • 10. Decision Trees  Decision trees can model comparison sorts. For a given algorithm:    One tree for each n Tree paths are all possible execution traces What’s the longest path in a decision tree for insertion sort? For merge sort? What is the asymptotic height of any decision tree for sorting n elements?  Answer: (n lg n)  Sandeep Kumar Poonia 2/19/2012
  • 11. Lower Bound For Comparison Sorting Theorem: Any decision tree that sorts n elements has height (n lg n)  What’s the minimum # of leaves?  What’s the maximum # of leaves of a binary tree of height h?  Clearly the minimum # of leaves is less than or equal to the maximum # of leaves  Sandeep Kumar Poonia 2/19/2012
  • 12. Lower Bound For Comparison Sorting So we have… n!  2h  Taking logarithms: lg (n!)  h  Stirling’s approximation tells us:  n  n n!    e n n Thus: h  lg  e Sandeep Kumar Poonia 2/19/2012
  • 13. Lower Bound For Comparison Sorting  So we have n h  lg   e n  n lg n  n lg e  n lg n   Thus the minimum height of a decision tree is (n lg n) Sandeep Kumar Poonia 2/19/2012
  • 14. Lower Bound For Comparison Sorts Thus the time to comparison sort n elements is (n lg n)  Corollary: Heapsort and Mergesort are asymptotically optimal comparison sorts  But the name of this lecture is “Sorting in linear time”!   How can we do better than (n lg n)? Sandeep Kumar Poonia 2/19/2012
  • 15. Sorting In Linear Time  Counting sort   No comparisons between elements! But…depends on assumption about the numbers being sorted  We  assume numbers are in the range 1.. k The algorithm: A[1..n], where A[j]  {1, 2, 3, …, k}  Output: B[1..n], sorted (notice: not sorting in place)  Also: Array C[1..k] for auxiliary storage  Input: Sandeep Kumar Poonia 2/19/2012
  • 16. Counting Sort 1 2 3 4 5 6 7 8 9 10 CountingSort(A, B, k) for i=0 to k C[i]= 0; for j=1 to n C[A[j]]= C[A[j]] + 1; for i=2 to k C[i] = C[i] + C[i-1]; for j=n downto 1 B[C[A[j]]] = A[j]; C[A[j]] = C[A[j]] - 1; Sandeep Kumar Poonia 2/19/2012
  • 17. Counting Sort 1 2 3 4 5 6 7 8 9 10 CountingSort(A, B, k) for i=1 to k Takes time O(k) C[i]= 0; for j=1 to n C[A[j]] += 1; for i=2 to k C[i] = C[i] + C[i-1]; Takes time O(n) for j=n downto 1 B[C[A[j]]] = A[j]; C[A[j]] -= 1; What will be the running time? Sandeep Kumar Poonia 2/19/2012
  • 18. Counting Sort  Total time: O(n + k)    Usually, k = O(n) Thus counting sort runs in O(n) time But sorting is (n lg n)!   No contradiction--this is not a comparison sort (in fact, there are no comparisons at all!) Notice that this algorithm is stable Sandeep Kumar Poonia 2/19/2012
  • 19. Counting Sort Cool! Why don’t we always use counting sort?  Because it depends on range k of elements  Could we use counting sort to sort 32 bit integers? Why or why not?  Answer: no, k too large (232 = 4,294,967,296)  Sandeep Kumar Poonia 2/19/2012
  • 20. Counting Sort How did IBM get rich originally?  Answer: punched card readers for census tabulation in early 1900’s.   In particular, a card sorter that could sort cards into different bins  Each column can be punched in 12 places  Decimal digits use 10 places  Problem: only one column can be sorted on at a time Sandeep Kumar Poonia 2/19/2012
  • 21. Radix Sort Intuitively, you might sort on the most significant digit, then the second msd, etc.  Problem: lots of intermediate piles of cards to keep track of  Key idea: sort the least significant digit first  RadixSort(A, d) for i=1 to d StableSort(A) on digit i Sandeep Kumar Poonia 2/19/2012
  • 22. Radix Sort Sandeep Kumar Poonia 2/19/2012
  • 23. Radix Sort Can we prove it will work?  Sketch of an inductive argument (induction on the number of passes):    Assume lower-order digits {j: j<i}are sorted Show that sorting next digit i leaves array correctly sorted  If two digits at position i are different, ordering numbers by that digit is correct (lower-order digits irrelevant)  If they are the same, numbers are already sorted on the lower-order digits. Since we use a stable sort, the numbers stay in the right order Sandeep Kumar Poonia 2/19/2012
  • 24. Radix Sort Sandeep Kumar Poonia 2/19/2012
  • 25. Radix Sort Sandeep Kumar Poonia 2/19/2012
  • 28. Radix Sort  In general, radix sort based on counting sort is     Fast Asymptotically fast (i.e., O(n)) Simple to code A good choice Sandeep Kumar Poonia 2/19/2012
  • 29. Bucket Sort  Bucket sort   Assumption: input is n reals from [0, 1) Basic idea:  Create n linked lists (buckets) to divide interval [0,1) into subintervals of size 1/n  Add each input element to appropriate bucket and sort buckets with insertion sort  Uniform input distribution  O(1) bucket size  Therefore  the expected total time is O(n) These ideas will return when we study hash tables Sandeep Kumar Poonia 2/19/2012
  • 30. Bucket Sort Sandeep Kumar Poonia 2/19/2012
  • 31. Bucket Sort Sandeep Kumar Poonia 2/19/2012
  • 32. Bucket Sort Sandeep Kumar Poonia 2/19/2012