DOC PREVIEW
MSU CSE 830 - LECTURE NOTES

This preview shows page 1-2-3-24-25-26 out of 26 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

SortingHeaps and HeapsortDefinitionWhich of these are heaps?Partial Order PropertyQuestionsArray ImplementationInsertion OperationHeap Construction By InsertionHeapify OperationHeap Construction By HeapifyAnalysis: Heap Construction By HeapifyExtract Max OperationHeap SortΘ(n2) Comparison-based algorithmsΘ(n lg n) Comparison-based algorithmsQuicksort OptimizationsPossible reasons for not choosing quicksortLower Bound on Comparison-based methodsExample Decision TreeAnalysis of Decision TreeLinear Time SortingCounting SortRadix SortBucket SortBucket Sort AnalysisSorting•Comparison-based algorithm review–You should know most of the algorithms–We will concentrate on their analyses–Special emphasis: Heapsort•Lower bound for comparison-based methods•Non-comparison based sortingHeaps and Heapsort•Definition•Operations and uses in heap construction–Insertion–Heapify–Extract max•HeapsortDefinitionA binary heap (max-heap) is defined to be a binary tree with a key in each node such that: 1: All leaves are on, at most, two adjacent levels. 2: All leaves on the lowest level occur to the left, and all levels except the lowest one are completely filled. 3: The key in root is greater than all its children, and the left and right subtrees are again binary heaps. We can also define min-heaps reversing property 3Which of these are heaps?Partial Order PropertyThe ancestor relation in a heap defines a partial order on its elements, which means it is reflexive, anti-symmetric, and transitive.Reflexive: x is an ancestor of itself. Anti-symmetric: if x is an ancestor of y and y is an ancestor of x, then x=y.Transitive: if x is an ancestor of y and y is an ancestor of z, x is an ancestor of z.Partial orders can be used to model hierarchies with incomplete information or equal-valued elements.Questions•What are the minimum and maximum number of elements in a heap of height h?–1 node heap has height 0 •What is the height of a heap with n elements?•Where in a heap might the smallest node reside?Array Implementation•Root stored in index 1•Children(x) in locations 2x and 2x+1•Parent(x) in floor(x/2) 1 2 3 4 5 6 7 8 9 10 11 1243 41 29 23 37 17 19 3 7 31 1 2Insertion Operation•Place item to be inserted into leftmost open array slot•If item is greater than parent, swap and recurse•Number of comparisons in the worst case? 1 2 3 4 5 6 7 8 9 10 11 12 1343 41 29 23 37 17 19 3 7 31 1 233Heap Construction By Insertion•Suppose we did heap construction of an n element heap by sequentially inserting n items•Let T(n) denote the number of comparisons needed in the worst-case to build a heap of n items•Define a recurrence relation for T(n)–T(n) =–T(1) =•Solve your recurrence relation to derive the worst-case time to build a heap in this manner.Heapify Operation•Suppose you have a heap EXCEPT a specific value may violate the heap condition•Fix by 3-way comparison working DOWN the heap•WC # of comparisons? 1 2 3 4 5 6 724 41 29 23 37 17 192441232937 17 19Heap Construction By Heapify•How can we construct a heap from n numbers by using the heapify operation?•Example:–5, 3, 17, 10, 84, 19, 6, 22, 9Analysis: Heap Construction By Heapify•There is a direct analysis in the textbook. Here I present a recurrence relation analysis.•Let T(n) denote the number of comparisons needed in the worst-case to build a heap of n items•Define a recurrence relation for T(n)–T(n) =–T(1) =•Solve your recurrence relation to derive the worst-case time to build a heap in this manner.Extract Max Operation•Copy root value to be returned•Move rightmost entry to root•Perform heapify to fix up heap•WC running time? 1 2 3 4 5 6 7 8 9 10 11 12 2 41 29 23 37 17 19 3 7 31 1 -Heap Sort•How can we use a heap and heap operations to solve the sorting problem?•Do we need all three operations studied?–Insertion, Heapify, Extract Max•What is the running time?Θ(n2) Comparison-based algorithms•Θ(n2) worst-case methods–Insertion Sort–Selection Sort–Bubble Sort•What is the idea behind each method?•What are advantages/disadvantages of each method?•Faster methods–Merge Sort–Quicksort–Heapsort•What is the idea behind merge sort?•What are advantages/disadvantages of each method?Θ(n lg n) Comparison-based algorithmsQuicksort Optimizations•Quicksort is regarded as the fastest sort algorithm in most cases•Some optimization possibilities–Randomized pivot selection: guarantees never to never have worst-case time due to bad data.–Median of three pivot selection: Can be slightly faster than randomization for somewhat sorted data.–Leave small sub-arrays for insertion sort: Insertion sort can be faster, in practice, for small values of n.–Do the smaller partition first: minimize runtime memory.Possible reasons for not choosing quicksort• Is the data already partially sorted?• Do we know the distribution of the keys?• Is the range of possible keys very small?Lower Bound on Comparison-based methods•Any comparison-based sorting program can be thought of as defining a decision tree of possible executions.Example Decision TreeAnalysis of Decision Tree•Consider the decision tree T for any comparison-based algorithm. T must have at least n! leaves. Why?•Given that there are n! leaves, what must the height of the decision tree be?•What does this imply about the running time of any comparison-based algorithm?Linear Time Sorting•Algorithms exist for sorting n items in Θ(n) time IF we can make some assumptions about the input data•These algorithms do not sort solely by comparisons, thus avoiding the Ω (n log n) lower bound on comparison-based sorting algorithms–Counting sort–Radix Sort–Bucket SortCounting Sort•Assumption: Keys to be sorted have a limited finite range, say [0 .. k-1]•Method: –Count number of items with value exactly i–Compute number of items with value at most i–Use counts for placement of each item in final array•Full details in book•Running time: Θ(n+k)•Key observation: Counting sort is stableRadix Sort•Assumption: Keys to be sorted have d digits•Method: –Use counting sort (or any stable sort) to sort numbers starting with least significant digit and ending with most significant digit•Running time: Θ(d(n+k)) where k is the number of possible values for each digitBucket Sort•Assumption: Keys to be sorted are uniformly distributed over a known


View Full Document

MSU CSE 830 - LECTURE NOTES

Download LECTURE NOTES
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view LECTURE NOTES and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view LECTURE NOTES 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?