SlideShare a Scribd company logo
1 of 67
Heaps & Priority Queues
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object]
Complete  Binary Tree ,[object Object],[object Object],[object Object]
Array-Based  Representation of a Binary Tree Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary root 0 free 10
Left Child  &  Right Child  in a  Complete,  Array-Based Binary Tree ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Left Child  &  Right Child  in a  Complete,  Array-Based Binary Tree ,[object Object],[object Object],Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary
Parent  in a  Complete, Array-Based Binary Tree ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Parent  in a  Complete , Array-Based Binary Tree ,[object Object],Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary
Array-Based Representation of a  Complete  Binary Tree ,[object Object],[object Object]
Array-Based Representation of a Complete  Binary Tree Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary
Heaps ,[object Object],[object Object],[object Object],[object Object],[object Object]
Array-Based Representation of a Heap Mary Mike Sam Ann Tom Pam Sue Joe Bob Jane 3 2 1 5 4 7 6 9 8 10
Array-Based Representation of a Heap ,[object Object],[object Object],[object Object],[object Object]
The ADT Priority Queue ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ:  Array-Based Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ:  Array-Based Implementation ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ:  Public Member Function Definitions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ:  Retrieve & Delete ,[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ:  Public Member Function Definition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Semiheap ,[object Object],10 5 10 40 30 15 50 35 20 55 60 45 25 55 45 25
Rebuilding a Heap:  Basic Idea ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Retrieve & Delete:  Example ,[object Object],[object Object],5 10 40 30 15 50 35 20 55 45 60 25 move 25 to here
Rebuilding a Heap:  Example (Cont’d.) ,[object Object],[object Object],15 50 35 20 5 10 40 30 55 45 25 swap 25 with the item in this node
Rebuilding a Heap:  Example (Cont’d.) ,[object Object],[object Object],15 50 35 20 5 10 40 30 25 45 55 swap 25 with the item in this node
Rebuilding a Heap:  Example (Cont’d.) ,[object Object],[object Object],15 25 35 20 5 10 40 30 50 45 55 swap 25 with the item in this node
Rebuilding a Heap:  Example (Cont’d.) ,[object Object],[object Object],[object Object],15 40 35 20 5 10 25 30 50 45 55
PriorityQ:  Private Member Function Definition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ  Insert :  Basic Idea ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PriorityQ Insert:  Example ,[object Object],[object Object],15 40 35 20 5 10 25 30 50 45 55 47
PriorityQ Insert:  Example (Cont’d.) ,[object Object],15 40 35 20 5 10 25 30 50 45 55 47
PriorityQ Insert:  Example (Cont’d.) ,[object Object],15 40 47 20 5 10 25 30 50 45 55 35
PriorityQ Insert:  Example (Cont’d.) ,[object Object],[object Object],15 40 45 20 5 10 25 30 50 47 55 35
PriorityQ:  Public Member Function Definition ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Heap-Based PriorityQ:  Efficiency ,[object Object],[object Object],[object Object],[object Object],[object Object]
Heapsort:  Basic Idea ,[object Object],[object Object],[object Object],[object Object]
Transform an Array Into a Heap: Basic Idea ,[object Object],[object Object],[object Object],[object Object]
Transform an Array Into a Heap:  Example ,[object Object],[object Object],[object Object],7 2 4 10 9 3 5 6 5 4 3 2 1 0 4 2 7 5 3 6 7 6 9 10 rebuildHeap
Transform an Array Into a Heap:  Example ,[object Object],[object Object],rebuildHeap 9 2 4 10 7 3 5 6 5 4 3 2 1 0 4 2 9 5 3 6 7 6 7 10
Transform an Array Into a Heap:  Example ,[object Object],[object Object],rebuildHeap 9 2 4 5 7 3 10 6 5 4 3 2 1 0 4 2 9 10 3 6 7 6 7 5
Transform an Array Into a Heap:  Example ,[object Object],[object Object],rebuildHeap 3 2 4 5 7 9 10 6 5 4 3 2 1 0 4 2 3 10 9 6 7 6 7 5
Transform an Array Into a Heap:  Example ,[object Object],[object Object],[object Object],rebuildHeap 7 2 4 5 3 9 10 6 5 4 3 2 1 0 4 2 7 10 9 6 7 6 3 5
Transform an Array Into a Heap:  Example ,[object Object],[object Object],7 2 4 5 3 9 6 10 5 4 3 2 1 0 4 2 7 6 9 10 7 6 3 5
Transform an Array Into a Heap (Cont’d.) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transform an Array Into a Heap:  C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Rebuild a Heap:  C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transform a Heap Into a Sorted Array ,[object Object],[object Object],[object Object]
Transform a Heap Into a Sorted Array: Basic Idea ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],7 2 4 5 3 9 6 10 4 2 7 6 9 10 5 4 3 2 1 0 7 6 3 5 a[ ]: Heap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],7 2 4 5 9 6 3 4 2 7 6 9 3 5 4 3 2 1 0 7 6 10 5 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],7 2 4 5 3 6 9 4 2 7 6 3 9 5 4 3 2 1 0 7 6 10 5 a[ ]: Becoming a Heap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],3 2 4 5 7 6 9 4 2 3 6 7 9 5 4 3 2 1 0 7 6 10 5 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 2 4 7 6 5 4 2 3 6 7 5 5 4 3 2 1 0 7 6 10 9 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 2 4 5 6 7 4 2 3 6 5 7 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 2 5 6 4 7 2 3 6 5 4 5 4 3 2 1 0 7 6 10 9 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],3 2 5 4 6 7 2 3 4 5 6 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 5 4 2 7 6 3 4 5 2 5 4 3 2 1 0 7 6 10 9 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],Becoming a Heap 3 2 4 5 7 6 3 4 2 5 5 4 3 2 1 0 7 6 10 9 a[ ]: Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],2 3 4 5 7 6 2 4 3 5 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 4 2 7 6 5 4 3 2 5 4 3 2 1 0 7 6 10 9 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],3 2 4 7 6 5 2 3 4 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],3 2 7 6 5 4 3 2 5 4 3 2 1 0 7 6 10 9 a[ ]: Semiheap Sorted rebuildHeap
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],2 3 7 6 5 4 2 3 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],[object Object],[object Object],2 7 6 5 4 3 2 5 4 3 2 1 0 7 6 10 9 a[ ]: Heap Sorted
Transform a Heap Into a Sorted Array:  Example ,[object Object],7 6 5 4 3 2 5 4 3 2 1 0 7 6 10 9 a[ ]: Sorted
Heapsort:  C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Heapsort:  Efficiency ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Growth Rates for Selected Sorting Algorithms †   According to Knuth, the  average growth rate  of Insertion sort is about 0.9 times that of Selection sort and about 0.4 times that of Bubble Sort.  Also, the  average growth rate  of Quicksort is about 0.74 times that of Mergesort and about 0.5 times that of Heapsort.

More Related Content

What's hot

Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
sumitbardhan
 

What's hot (20)

Heap tree
Heap treeHeap tree
Heap tree
 
Threaded Binary Tree.pptx
Threaded Binary Tree.pptxThreaded Binary Tree.pptx
Threaded Binary Tree.pptx
 
BINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptBINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.ppt
 
Heap sort
Heap sort Heap sort
Heap sort
 
Linked list
Linked list Linked list
Linked list
 
Graph in data structure
Graph in data structureGraph in data structure
Graph in data structure
 
Priority Queue in Data Structure
Priority Queue in Data StructurePriority Queue in Data Structure
Priority Queue in Data Structure
 
Stack
StackStack
Stack
 
Breadth First Search & Depth First Search
Breadth First Search & Depth First SearchBreadth First Search & Depth First Search
Breadth First Search & Depth First Search
 
Tree traversal techniques
Tree traversal techniquesTree traversal techniques
Tree traversal techniques
 
Data Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search TreeData Structure and Algorithms Binary Search Tree
Data Structure and Algorithms Binary Search Tree
 
Data Structures with C Linked List
Data Structures with C Linked ListData Structures with C Linked List
Data Structures with C Linked List
 
single linked list
single linked listsingle linked list
single linked list
 
Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures Trees, Binary Search Tree, AVL Tree in Data Structures
Trees, Binary Search Tree, AVL Tree in Data Structures
 
Binary Search Tree
Binary Search TreeBinary Search Tree
Binary Search Tree
 
queue & its applications
queue & its applicationsqueue & its applications
queue & its applications
 
Hash tables
Hash tablesHash tables
Hash tables
 
Heaps
HeapsHeaps
Heaps
 
Algorithm analysis
Algorithm analysisAlgorithm analysis
Algorithm analysis
 
Tree
TreeTree
Tree
 

Viewers also liked

Algorithm: priority queue
Algorithm: priority queueAlgorithm: priority queue
Algorithm: priority queue
Tareq Hasan
 
Deque and its applications
Deque and its applicationsDeque and its applications
Deque and its applications
Jsaddam Hussain
 
My lectures circular queue
My lectures circular queueMy lectures circular queue
My lectures circular queue
Senthil Kumar
 

Viewers also liked (20)

Priority queues
Priority queuesPriority queues
Priority queues
 
Algorithm: priority queue
Algorithm: priority queueAlgorithm: priority queue
Algorithm: priority queue
 
Priority queue
Priority queuePriority queue
Priority queue
 
computer notes - Priority queue
computer notes -  Priority queuecomputer notes -  Priority queue
computer notes - Priority queue
 
Heaps
HeapsHeaps
Heaps
 
Priority Queue
Priority QueuePriority Queue
Priority Queue
 
23 priority queue
23 priority queue23 priority queue
23 priority queue
 
Heap sort
Heap sort Heap sort
Heap sort
 
Deque and its applications
Deque and its applicationsDeque and its applications
Deque and its applications
 
Queue
QueueQueue
Queue
 
Heap sort
Heap sortHeap sort
Heap sort
 
Ppt presentation of queues
Ppt presentation of queuesPpt presentation of queues
Ppt presentation of queues
 
Quick Sort , Merge Sort , Heap Sort
Quick Sort , Merge Sort ,  Heap SortQuick Sort , Merge Sort ,  Heap Sort
Quick Sort , Merge Sort , Heap Sort
 
Queue Data Structure
Queue Data StructureQueue Data Structure
Queue Data Structure
 
Queue as data_structure
Queue as data_structureQueue as data_structure
Queue as data_structure
 
Queue data structure
Queue data structureQueue data structure
Queue data structure
 
Heapsort
HeapsortHeapsort
Heapsort
 
Notes DATA STRUCTURE - queue
Notes DATA STRUCTURE - queueNotes DATA STRUCTURE - queue
Notes DATA STRUCTURE - queue
 
My lectures circular queue
My lectures circular queueMy lectures circular queue
My lectures circular queue
 
Maps
MapsMaps
Maps
 

Similar to Heaps & priority queues

Data structures and algorithms lab10
Data structures and algorithms lab10Data structures and algorithms lab10
Data structures and algorithms lab10
Bianca Teşilă
 
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptx
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptxLesson-7-Priority-Queues-and-Heap-Trees-1.pptx
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptx
CrisannJasmin
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heaps
chidabdu
 
23 stacks-queues-deques
23 stacks-queues-deques23 stacks-queues-deques
23 stacks-queues-deques
Rishabh Jindal
 
CS-102 Course_ Binary Tree Lectures .pdf
CS-102 Course_ Binary Tree Lectures .pdfCS-102 Course_ Binary Tree Lectures .pdf
CS-102 Course_ Binary Tree Lectures .pdf
ssuser034ce1
 
computer notes - Stack
computer notes - Stackcomputer notes - Stack
computer notes - Stack
ecomputernotes
 

Similar to Heaps & priority queues (20)

Unit-5 Advanced tree zxcppt
Unit-5 Advanced tree                     zxcpptUnit-5 Advanced tree                     zxcppt
Unit-5 Advanced tree zxcppt
 
Data structures and algorithms lab10
Data structures and algorithms lab10Data structures and algorithms lab10
Data structures and algorithms lab10
 
data structures and algorithms Unit 3
data structures and algorithms Unit 3data structures and algorithms Unit 3
data structures and algorithms Unit 3
 
Advanced s and s algorithm.ppt
Advanced s and s algorithm.pptAdvanced s and s algorithm.ppt
Advanced s and s algorithm.ppt
 
05 heap 20161110_jintaeks
05 heap 20161110_jintaeks05 heap 20161110_jintaeks
05 heap 20161110_jintaeks
 
Heaps
HeapsHeaps
Heaps
 
Unit III Heaps.ppt
Unit III Heaps.pptUnit III Heaps.ppt
Unit III Heaps.ppt
 
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptx
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptxLesson-7-Priority-Queues-and-Heap-Trees-1.pptx
Lesson-7-Priority-Queues-and-Heap-Trees-1.pptx
 
Heap Tree.pdf
Heap Tree.pdfHeap Tree.pdf
Heap Tree.pdf
 
Ch15 Heap
Ch15 HeapCh15 Heap
Ch15 Heap
 
Array implementation & Construction of Heap
Array implementation & Construction of HeapArray implementation & Construction of Heap
Array implementation & Construction of Heap
 
Stacks, Queues, Deques
Stacks, Queues, DequesStacks, Queues, Deques
Stacks, Queues, Deques
 
Basic data structures in python
Basic data structures in pythonBasic data structures in python
Basic data structures in python
 
Sienna 7 heaps
Sienna 7 heapsSienna 7 heaps
Sienna 7 heaps
 
23 stacks-queues-deques
23 stacks-queues-deques23 stacks-queues-deques
23 stacks-queues-deques
 
Binary Tree - Algorithms
Binary Tree - Algorithms Binary Tree - Algorithms
Binary Tree - Algorithms
 
CS-102 Course_ Binary Tree Lectures .pdf
CS-102 Course_ Binary Tree Lectures .pdfCS-102 Course_ Binary Tree Lectures .pdf
CS-102 Course_ Binary Tree Lectures .pdf
 
Heapsort
HeapsortHeapsort
Heapsort
 
computer notes - Stack
computer notes - Stackcomputer notes - Stack
computer notes - Stack
 
Leftlist Heap-1.pdf
Leftlist Heap-1.pdfLeftlist Heap-1.pdf
Leftlist Heap-1.pdf
 

More from Pedro Hugo Valencia Morales (10)

Árboles como Estructura de Datos
Árboles como Estructura de DatosÁrboles como Estructura de Datos
Árboles como Estructura de Datos
 
C++ io manipulation
C++ io manipulationC++ io manipulation
C++ io manipulation
 
Colas de prioridad
Colas de prioridadColas de prioridad
Colas de prioridad
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
Arboles03
Arboles03Arboles03
Arboles03
 
Arboles02
Arboles02Arboles02
Arboles02
 
Arboles01
Arboles01Arboles01
Arboles01
 
Arquitectura ssdd
Arquitectura ssddArquitectura ssdd
Arquitectura ssdd
 
Cap02 modelos1
Cap02 modelos1Cap02 modelos1
Cap02 modelos1
 
Chapter 1 slides
Chapter 1 slidesChapter 1 slides
Chapter 1 slides
 

Heaps & priority queues

  • 2.
  • 3.
  • 4. Array-Based Representation of a Binary Tree Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary root 0 free 10
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Array-Based Representation of a Complete Binary Tree Bob Mike Sam Tom Pam Joe Sue Ann Jane Mary
  • 11.
  • 12. Array-Based Representation of a Heap Mary Mike Sam Ann Tom Pam Sue Joe Bob Jane 3 2 1 5 4 7 6 9 8 10
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. Growth Rates for Selected Sorting Algorithms † According to Knuth, the average growth rate of Insertion sort is about 0.9 times that of Selection sort and about 0.4 times that of Bubble Sort. Also, the average growth rate of Quicksort is about 0.74 times that of Mergesort and about 0.5 times that of Heapsort.