Heapsort On lg n worst case Another design

  • Slides: 31
Download presentation
Heapsort • O(n lg n) worst case • Another design paradigm – Use of

Heapsort • O(n lg n) worst case • Another design paradigm – Use of a data structure (heap) to manage information during execution of algorithm • Comparision-based Sorting Algorithm Analysis of Algorithms 1

Heap Data Structure Analysis of Algorithms 2

Heap Data Structure Analysis of Algorithms 2

Heap Property Analysis of Algorithms 3

Heap Property Analysis of Algorithms 3

A Heap Example Analysis of Algorithms 4

A Heap Example Analysis of Algorithms 4

Heap Data Structure Analysis of Algorithms 5

Heap Data Structure Analysis of Algorithms 5

Heap Operations Analysis of Algorithms 6

Heap Operations Analysis of Algorithms 6

Heap Operations Analysis of Algorithms 7

Heap Operations Analysis of Algorithms 7

Maintaining Heap Analysis of Algorithms 8

Maintaining Heap Analysis of Algorithms 8

Runtime Analysis of HEAPIFY Analysis of Algorithms 9

Runtime Analysis of HEAPIFY Analysis of Algorithms 9

Formal Runtime Analysis of HEAPIFY Analysis of Algorithms 10

Formal Runtime Analysis of HEAPIFY Analysis of Algorithms 10

Formal Runtime Analysis of HEAPIFY Analysis of Algorithms 11

Formal Runtime Analysis of HEAPIFY Analysis of Algorithms 11

Building Heap Analysis of Algorithms 12

Building Heap Analysis of Algorithms 12

Proof of Lemma Analysis of Algorithms 13

Proof of Lemma Analysis of Algorithms 13

Building Heap Analysis of Algorithms 14

Building Heap Analysis of Algorithms 14

Build Heap - Example Analysis of Algorithms 15

Build Heap - Example Analysis of Algorithms 15

Build Heap - Example Analysis of Algorithms 16

Build Heap - Example Analysis of Algorithms 16

Build. Heap – Tighter Running Time Analysis of Algorithms 17

Build. Heap – Tighter Running Time Analysis of Algorithms 17

Build. Heap – Tighter Running Time Analysis of Algorithms 18

Build. Heap – Tighter Running Time Analysis of Algorithms 18

Build. Heap – Tighter Running Time Analysis of Algorithms 19

Build. Heap – Tighter Running Time Analysis of Algorithms 19

Build. Heap – Tighter Running Time Analysis of Algorithms 20

Build. Heap – Tighter Running Time Analysis of Algorithms 20

HEAPSORT Analysis of Algorithms 21

HEAPSORT Analysis of Algorithms 21

HEAPSORT Analysis of Algorithms 22

HEAPSORT Analysis of Algorithms 22

Heapsort - Example Analysis of Algorithms 23

Heapsort - Example Analysis of Algorithms 23

Heapsort - Example Analysis of Algorithms 24

Heapsort - Example Analysis of Algorithms 24

Heapsort - Example Analysis of Algorithms 25

Heapsort - Example Analysis of Algorithms 25

Heapsort – Running Time Analysis of Algorithms 26

Heapsort – Running Time Analysis of Algorithms 26

How fast can we sort? • The comparison sorting algorithms such as insertion sort,

How fast can we sort? • The comparison sorting algorithms such as insertion sort, mergesort, quicksort and heapsort only use comparisons to determine the relative order of elements. • The best worst-case running time that we’ve seen for comparison sorting is O(n lg n). Is O(n lg n) the best we can do? • Decision trees can help us answer this question. Analysis of Algorithms 27

Decision-tree example Analysis of Algorithms 28

Decision-tree example Analysis of Algorithms 28

Decision-tree example Analysis of Algorithms 29

Decision-tree example Analysis of Algorithms 29

Decision-tree model Analysis of Algorithms 30

Decision-tree model Analysis of Algorithms 30

Lower bound for decision-tree sorting Corollary. Heapsort and merge sort are asymptotically optimal comparison

Lower bound for decision-tree sorting Corollary. Heapsort and merge sort are asymptotically optimal comparison sorting algorithms. Analysis of Algorithms 31