Question: Mod 7 Lab: Which sorting algorithm is which? Differentiate 5 sorting algorithms ( bubble , selection, insertion, merge, and quick ) based on how long

Mod 7 Lab: Which sorting algorithm is which?
Differentiate 5 sorting algorithms (bubble, selection, insertion, merge, and quick) based on how long
they take to sort certain lists.
When you submit a file called numbers.txt to Gradescope, it will sort the numbers inside with these 5
algorithms, aliased as alg_a, alg_b, alg_c, alg_d, and alg_e:
================
n =1000
----------------
alg t (ms)
----------------
alg_a 24.6
alg_b 1.35
alg_c 57
alg_d 2.12
alg_e 40.1
----------------
You need to
1) Create lists of different lengths and patterns
2) Determine which alias corresponds to which sorting algorithm
Answers
Write your answers in answers.py. It contains a dictionary where the keys are the aliased algorithms; you
just need to enter the correct values (bubble,selection,insertion,merge, or quick):
answers ={'alg_a': '', 'alg_b': '', 'alg_c': '', 'alg_d': '', 'alg_e': ''}
Lab Notes
generate_numbers.py contains code to automate the generation of numbers.txt.
Each algorithm is used exactly once.
The bubble and insertion sorts are adaptive - they can sort in O(n) in the best case.
The quicksort algorithm always uses the last element in a sublist as the pivot.
The largest list you can create is 2000 items due to resource constraints on Gradescope.
Submitting
Students must submit individually by the due date (typically, Sunday at 11:59 pm EST) to receive credit.
Grading
This assignment is entirely auto-graded: 20 points per correct algorithm
code answers.py:
# Include your answers for this lab in the dictionary below.
# The keys of the dictionary are the pre-numbered algorithms.
# The values are your answers. Use:
# 'bubble'
# 'selction'
# 'insertion'
# 'merge'
# 'quick'
# #For instance, if you though all the algorithms were bubble sort (they are not), this file should read:
# answers ={'alg_a': 'bubble',
# 'alg_b': 'bubble',
# 'alg_c': 'bubble',
# 'alg_d': 'bubble',
# 'alg_e': 'bubble'}
# Fill in your answers as the values in the dict below
answers ={'alg_a': '',
'alg_b': '',
'alg_c': '',
'alg_d': '',
'alg_e': ''
}
valid_ans ={'bubble', 'selection', 'insertion', 'merge', 'quick'}
# Run this file in terminal to see if you used the correct formatting in your answer.
for k, v in answers.items():
if v not in valid_ans:
raise ValueError(f"Value '{v}' for key '{k}' is not in {valid_ans}")
print("Valid answer! Find out if it's right after the due date.")
code generate_numbers.py:
# This program generates a list of numbers and writes them to a file.
import random
##### Generate list of numbers #####
n =1000 # Max is 2000 due to memory constraints with quicksort
L =[random.randint(0, n) for i in range(n)]
##### Create file to write to #####
f = open(f"./numbers.txt","w")
##### Write numbers to file #####
for item in L:
f.write(str(item))
f.write("")
#### Close the file ####
f.close()
file name : numbers.txt

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!