Unformatted text preview:

Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 Outline and Reading Divide and conquer paradigm 4 1 1 Merge sort 4 1 1 Algorithm Merging two sorted sequences Merge sort tree Execution example Analysis Generic merging and set operations 4 2 1 Summary of sorting algorithms 4 2 1 Divide and Conquer Divide and conquer is a general algorithm design paradigm Divide divide the input data S in two disjoint subsets S1 and S2 Recur solve the subproblems associated with S1 and S2 Conquer combine the solutions for S1 and S2 into a solution for S The base case for the recursion are subproblems of size 0 or 1 Merge sort is a sorting algorithm based on the divide and conquer paradigm Like heap sort It uses a comparator It has O n log n running time Unlike heap sort It does not use an auxiliary priority queue It accesses data in a sequential manner suitable to sort data on a disk Merge Sort Merge sort on an input sequence S with n elements consists of three steps Divide partition S into two sequences S1 and S2 of about n 2 elements each Recur recursively sort S1 and S2 Conquer merge S1 and S2 into a unique sorted sequence Algorithm mergeSort S C Input sequence S with n elements comparator C Output sequence S sorted according to C if S size 1 S1 S2 partition S n 2 mergeSort S1 C mergeSort S2 C S merge S1 S2 Merging Two Sorted Sequences The conquer step of merge sort consists of merging two sorted sequences A and B into a sorted sequence S containing the union of the elements of A and B Merging two sorted sequences each with n 2 elements and implemented by means of a doubly linked list takes O n time Algorithm merge A B Input sequences A and B with n 2 elements each Output sorted sequence of A B S empty sequence while A isEmpty B isEmpty if A first element B first element S insertLast A remove A first else S insertLast B remove B first while A isEmpty S insertLast A remove A first while B isEmpty S insertLast B remove B first return S Merge Sort Tree An execution of merge sort is depicted by a binary tree each node represents a recursive call of merge sort and stores unsorted sequence before the execution and its partition sorted sequence at the end of the execution the root is the initial call the leaves are calls on subsequences of size 0 or 1 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 Execution Example Partition 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call partition 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call partition 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call base case 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call base case 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Merge 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call base case merge 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Merge 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 8 6 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Recursive call merge merge 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 6 8 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Execution Example cont Merge 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 7 2 2 7 7 7 2 2 9 4 4 9 9 9 4 4 3 8 6 1 1 3 6 8 3 8 3 8 3 3 8 8 6 1 1 6 6 6 1 1 Analysis of Merge Sort The height h of the merge sort tree is O log n The overall amount or work done at the nodes of depth i is O n at …


View Full Document

CALVIN CS 212 - Merge Sort

Documents in this Course
Load more
Download Merge Sort
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 Merge Sort 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 Merge Sort 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?