Csci 5454 Hw

download Csci 5454 Hw

of 10

description

Csci 5454 Hw

Transcript of Csci 5454 Hw

CSCI 5454 - Algorithms - Spring 2015Problem Set #1Due: Wed, Feb 4th

1.In each of the following situations, indicate whether f = O(g), or f = (g), or both (in which case f = (g)).(a) f(n) = n1.01, g(n) = n(b) f(n) = lg n, g(n) = ln n(c) f(n) = 2n, g(n) = 3n2.The text spends a lot of time talking about fib(200). Compute this number exactly using Python. Submit your code listing along with the value of fib(200), on paper.3.Consider the following Python function:def find(a, target): x = 0 y = len(a) while x < y: m = (x+y)/2 if a[m] < target: x = m+1 elif a[m] > target: y = m else: return m return -1Suppose listahas n elements and is sorted. Using () notation, what is thebestcase running time as function of n? Using () notation, what is theworstcase running time as function of n?4.Modify thefindfunction from problem 4 by changing the 5th line fromm = (x+y)/2tom = (2*x+y)/3; now answer the same questions given in problem 3.5.Consider this sorting algorithm, written in Python:def bsort(a): swapped = True

while swapped: swapped = False for i in range(0, len(a)-1): if a[i] > a[i+1]: a[i], a[i+1] = a[i+1], a[i] swapped = True(a)Is this sort randomized or deterministic?(b)What is the shape of the best-case input?(c)Using notation, what is the best-case running time of this program?(d)What is the shape of the worst-case input?(e)Using notation, what is the worst-case running time of this program?6.Consider this sorting algorithm, written in Python:import random

def luckysort(a): sorted = False

while not sorted: random.shuffle(a)sorted = True for i in range(0, len(a)-1): if a[i] > a[i+1]: sorted = FalseYou may assume the input arrayacontains distinct elements.(a)Is this sort randomized or deterministic?(b)What is the shape of the best-case input?(c)Using notation, what is the best-case running time of this program?(d)What is the shape of the worst-case input?(e)Using notation, what is the worst-case running running time of this program?(f)Using notation, what is the expected running time of this program?

CSCI 5454 - Algorithms - Spring 2015Problem Set #2Due: 1pm, Feb 18th, 2015

1. Suppose you wanted to determine if a decimal number is divisible by 101. Give a quick method for doing this. (Hint: convert the number to base-100 by grouping pairs of digits together.) Justify your answer.2. Text problem 1.12. Use only paper. Show your work.3. Text problem 1.13. Use only paper. Show your work.4. One of the largest naturally-occurring integer constants we know of isM=808017424794512875886459904961710757005754368000000000. This is the size of an object of mathematics that is just there (humans didn't invent it).Just for fun, computeMMmod22015. Use a computer for this one; include source code with your solution.5. Text problem 1.18. Show your work.6. Suppose I have ann-bit positive integerNstored in memory in binary, and I want to print it. What is the running time to printNif(a)I outputNin hexadecimal?(b)I outputNin binary?(c)I outputNin unary?

CSCI 5454 - Algorithms - Spring 2015Problem Set #3Due: 1pm, Feb 25th, 2015

1. Text problem 1.16.2. Text problem 1.20. Do not use a computer; show your work.3. Write a python functionnextprime(i)to find the next prime i. What isnextprime(2015**50)? Include the answer along with your source code.4. Using your code from above, write a python program that computes the average distance from a random 100-digit integer to the nextprime after it. Use 1 thousand samples to obtain your average. In other words, define a functiongetrand100()that generates random 100-digit random positive integers and lets=getrand100(); then compute the average value ofnextprime(s)-susing 1000 samples. Include source code with your answer.CSCI 5454 - Algorithms - Spring 2015Problem Set #4Due: 1pm, Mar 9th, 2015

1. Text problem 2.4. Justify your answer.2. Text problem 2.12. Justify your answer.3. Text problem 2.17. Justify your answer.4. Let A and B be arrays of integers. Each array contains n elements, and each array is in sorted order (ascending). A and B do not share any elements in common. Give a O(lg n)-time algorithm which finds the median of A union B. In other words, find the median of the 2n elements given by putting A and B together into one array. (Note:Remember the definition from our book (section 2.4) for the median of a list with an even number of elements.)5. The text doesn't implement their algorithm for Selection. Please do so. Then, compute the median of the list of words givenhereusing your algorithm. (Note:Use the standard comparison for strings (just like strcmp() in C). All words in this list are distinct.) What is the median of the list? Run your program and show the output. Run your program 1000 times on the word list and compute statistics on the number of recursive calls you make for each run: what is the min, the max, and the average number of calls?

CSCI 5454 - Algorithms - Spring 2015Problem Set #5Due: 1pm, Mar 30th, 2015

1. Text problem 3.8. (If using on-line book, ignore part (c))2. Suppose you are trying to buy a digraph from a salesman Joe. You tell Joe that your graph cannot have any odd-length cycles, and must be strongly-connected. Joe says he has just the thing, and he shows you just three edges of it: (a, b), (b, c) and (a, c). Explain why Joe must be lying. (Note: there might be a LOT more edges and a LOT more vertices, but you have to base your answer on just the three edges you can see.)3. Text problem 3.21.4. Text problem 3.24. Justify the correctness and running time of your algorithm. (Note that it says dag andnotdigraph. If we ask the same problem about a digraph, there is no known polynomial-time algorithm!)5. Achain of wordsis a list of words where the i-th word is the (i-1)st word with one extra character and some mixing of letters. For example, AN, TAN, RANT, TRAIN, RETINA, NASTIER is a chain of length 6. Find the longest chain you can in ourwordlist.In order to do this, first build a dag. The dag will consist of a node for each word (you might want to collapse words into a single node when it makes sense to), and an edge from word x to word y if y can follow x in a chain. Then run DFS from each source node in the dag and keep track of the maximum depth you reach. Print out an example chain that has maximum length (there will be a TON... just give one chain).Please hand in your source code along with the longest chain your code found.CSCI 5454 - Algorithms - Spring 2015Problem Set #6Due: 1pm, Apr 13th, 2015

1. Text problem 4.1.2. Text problem 4.4.3. Text problem 4.8.4. Text problem 4.9. (Assume that the graph has no negative-weight cycles.)5. Text problem 4.18.6. Text problem 4.19.7. Consider the digraph given bythisgraph where each line of the file indicates an edge. There are 77,360 nodes and 905,468 directed edges. What is the number of nodes in the largest SCC? What is the number of edges in the largest SCC? Include your code with your answer.By the way, here's a rendering of the graph from above. You can see that it's fairly tightly clustered (in other words, the shortest paths are not very long). The graph was constructed from 77,360 users of the popular SlashDot website; each user named other users as either Friend or Foe, thereby creating a digraph.

CSCI 5454 - Algorithms - Spr 2015Problem Set #7Due: 1pm, Apr 27th, 2015

1. Text problem 5.3.2. Text problem 5.9. (omit (j))3. Text problem 5.14.4. Text problem 5.345. Text problem 6.1.6. Text problem 6.4.7. Text problem 6.8.CSCI 3104 - Algorithms - Fall 2011Problem Set #8Due: Never

1. Text problem 6.21.2. Text problem 6.22.3. Text problem 6.25.4. Text problem 6.26.5. Text Problem 8.4 (For part d, your algorithm should run in O(|V|) not O(|V|4) as the pdf book says.)6. Text Problem 8.97. Text Problem 8.118. Text Problem 8.12