Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

def findDupes (A, B): # Find all elements common to sequences A and B and return them as a list Rhttp://localhost:8888/notebooks/IT-309%20A1%20Problems%20and%20Blank%20Submission%20Template(1).ipynb#P6,-Q2:--What-is-the-big-Oh-family-for-the-above-code?--Put-the-response-in-the-next-cell.eturn a list of all

def findDupes (A, B): # Find all elements common to sequences A and B and return them as a list

 """Rhttp://localhost:8888/notebooks/IT-309%20A1%20Problems%20and%20Blank%20Submission%20Template(1).ipynb#P6,-Q2:--What-is-the-big-Oh-family-for-the-above-code?--Put-the-response-in-the-next-cell.eturn a list of all element common to the sequences (lists) A and B."""
 rlist = [ ]
 for a in A:
 for b in B:
 if a == b:
 rlist.append(a)
 return rlist 

The code below tests the above function by defining two sequences of size 1000 and 500, respectively, then running the function using them as input. All elements of the second will be in the first. The code uses the built-in time function to measure the start and end times. Run the code below to see the result. Don't forget to run the cell that has the function definition to put it in your name space. Also be patient - the answer might take up to a minute to appear.

from time import time S1 = [n for n in range(0, 1000)] S2 = [n for n in range(0, 1000, 2) ] start = time() x = findDupes(S1, S2) print('Time: ', time() - start, ' # elts: ', len(x))

P6, Q4: Cut and paste the above code in the above cell into the next one, modify it to change both the sequence sizes to 10,000 (the second sequence only selected every other element, so will be 5,000), rerun the code and note the results. Then rerun it multiple times for sequences of 20,000, 30,000, 40,000, and 60,000 and note the results. Enter the resulting times in the cell below.

10,000:

20,000:

30,000:

40,000:

60,000:

Review your results for the various runs above. Is doubling the input size, say from 10,000 to 20,000 or from 20,000 to 40,000 consistent with the big-Oh prediction?

from time import time

S1 = [n for n in range(0, 40000)] S2 = [n for n in range(0, 40000, 2) ] start = time() x = findDupes(S1, S2) print('Time: ', time() - start, ' # elts: ', len(x))

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Object Databases The Essentials

Authors: Mary E. S. Loomis

1st Edition

020156341X, 978-0201563412

More Books

Students also viewed these Databases questions