Document Sample

CS – 560 Algorithms and their Analysis Assignment #3* (40 points) Due Nov 2, 2009 1. (3+2+2 points) The following parts are independent: (a) What is the running time of the Heapsort for presorted input? (b) Are there particularly good inputs (that would produce low complexity) for Heapsort? (inputs can be ordered, reverse ordered, random, etc., etc.) (c) Are there particularly good inputs for Mergesort? 2. (6 points) An array A of size n has values that are uniformly distributed in the interval {x, y} where x and y are given, i.e. every element of A is greater than x and less than y. Uniform distribution means that the probability that a particular element of A is in a sub-interval x1>x and y1<y is proportional to the length of the sub-interval, i.e. its probability is equal to (y1-x1)/(y-x). Propose an algorithm to sort the array A in (n ) . 3. (3+4 points) Parts (a) and (b) are independent. (a) Suppose you are given a list consisting of (n lg n ) sorted elements followed by (lg n) randomly ordered elements. Give an efficient algorithm to sort the entire list and determine the complexity of your algorithm. (b) Suppose that in Quicksort the pivot is the average of all keys. Will this guarantee balance partitioning and therefore (n lg n ) complexity? Explain. 4. (2 + 8 points) The following parts (a) and (b) are independent, but both refer to inversion in a sequence. (a) Suppose we exchange elements a[i] and a[j] (j>i) which were originally out of order. For example if a= [2,8,3,7,1,5,6] and if we exchange second (i=2) and sixth (j=6) elements, we have [2,5,3,7,1,8,6] and now 5 and 8 are ordered and therefore the array has fewer inversions, i.e. several inversions are removed. In terms of i and j, what is the maximum number of inversions that can be removed? (b) This problem arises in ranking which has many applications especially, in a web technique called collaborative filtering. Here they try to match your preference (for books, movies, restaurants) with those of other people on the internet. A main problem in collaborative ranking is comparing two rankings. You rank a list of n movies, say as {1, 2, …, n} and another person ranks them as {a1, a2, …, an}. For example, if there are four movies, your ranking would be {1,2,3,4} and other person’s ranking could be {a1, a2, a3, a4}={2,3,1,4}, i.e. the movie your ranked as 1 the other person ranked as 2, etc. A natural way to quantify similarity between two rankings is to count the number of inversions in the sequence. Given a list {a1, a2,…, an}, propose an algorithm in pseudo- code to count the number of inversions with O(n lg n ) complexity. (Hint: Recursively * The grade will be based mainly on the completeness and neatness of your solutions, and the reasoning presented in support of your answers. Please type your answers or write very clearly. divide the list into two sub-lists, count inversions in each sub-list and combine the sub- lists). 5. (3+7 points) A bank has issued two separate sets of account access cards, set A and set B. Each set consists of n cards and for every card in the set A there is a corresponding card in the set B that belong to the same account, and we will refer to these two cards as the matching pair. Each card is a small plastic object containing a magnetic strip with some encrypted number that corresponds to a unique account in the bank. It is required to find all matching pairs. There is a card reader machine such that when two cards, one from set A and one from set B, are inserted in the machine one of its three light indicators turns on; green if the pair matches, red if the account number on A is larger than B, and yellow if the number on B is higher than that of A. However, the card reader cannot compare two cards belonging to the same set. (a) Describe an algorithm in clearly defined step that uses (n 2 ) tests to find the matching pairs. (b) Describe a more efficient algorithm with an average case complexity of. O(n lg n ) tests to find the matching pairs. Prove that your algorithm satisfies the desired complexity.

DOCUMENT INFO

Shared By:

Categories:

Tags:
Computer Science, Operating Systems, Course Description, Artificial Intelligence, final exam, programming languages, Computer Graphics, Software Engineering, Credit Hours, computer architecture

Stats:

views: | 47 |

posted: | 4/16/2010 |

language: | English |

pages: | 2 |

SHARED BY

About
Some of Those documents come from internet for research purpose,if you have the copyrights of one of them,tell me by mail vixychina@gmail.com.Thank you!

OTHER DOCS BY hcj

How are you planning on using Docstoc?
BUSINESS
PERSONAL

By registering with docstoc.com you agree to our
privacy policy and
terms of service, and to receive content and offer notifications.

Docstoc is the premier online destination to start and grow small businesses. It hosts the best quality and widest selection of professional documents (over 20 million) and resources including expert videos, articles and productivity tools to make every small business better.

Search or Browse for any specific document or resource you need for your business. Or explore our curated resources for Starting a Business, Growing a Business or for Professional Development.

Feel free to Contact Us with any questions you might have.