P ython p rogramming e xercises



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə101/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   97   98   99   100   101   102   103   104   ...   124
PythonProgrammingExercisesGentlyExplained

Further Reading 
You can find out more about the Collatz sequence on Wikipedia at 
https://en.wikipedia.org/wiki/Collatz_conjecture. There are videos on YouTube about the sequence on the 
Veritasium channel titled ―The Simplest Math Problem No One Can Solve - Collatz Conjecture‖ at 
https://youtu.be/094y1Z2wpJg and and the Numberphile channel titled ―UNCRACKABLE? The 
Collatz Conjecture‖ at https://youtu.be/5mFpVDpKX70


123 
E X E R C I S E # 4 0 : M E R G I N G T W O S O R T E D
L I S T S
mergeTwoLists([1, 3, 6], [5, 7, 8, 9])
→ 
[1, 3, 5, 6, 7, 8, 9] 
One of the most efficient sorting algorithms is the merge sort algorithm. Merge sort has two 
phases: the dividing phase and the merge phase. We won’t dive into this advanced algorithm in this 
book. However, we can write code for the second half: merging two pre-sorted lists of integers into a 
single sorted list. 
Exercise Description 
Write a mergeTwoLists() function with two parameters list1 and list2. The lists of 
numbers passed for these parameters are already in sorted order from smallest to largest number. The 
function returns a single sorted list of all numbers from these two lists. 
You could write this function in one line of code by using Python’s sorted() function: 
return sorted(list1 + list2) 
But this would defeat the purpose of the exercise, so don’t use the sorted() function or 
sort()
method as part of your solution. 
These Python assert statements stop the program if their condition is False. Copy them to 
the bottom of your solution program. Your solution is correct if the following assert statements’ 
conditions are all True: 
assert mergeTwoLists([1, 3, 6], [5, 7, 8, 9]) == [1, 3, 5, 6, 7, 8, 9] 
assert mergeTwoLists([1, 2, 3], [4, 5]) == [1, 2, 3, 4, 5] 
assert mergeTwoLists([4, 5], [1, 2, 3]) == [1, 2, 3, 4, 5] 
assert mergeTwoLists([2, 2, 2], [2, 2, 2]) == [2, 2, 2, 2, 2, 2] 
assert mergeTwoLists([1, 2, 3], []) == [1, 2, 3] 
assert mergeTwoLists([], [1, 2, 3]) == [1, 2, 3] 
Try to write a solution based on the information in this description. If you still have trouble 
solving this exercise, read the Solution Design and Special Cases and Gotchas sections for 
additional hints. 
Prerequisite concepts: lists, while loops, Boolean operators, append(), for loops, range() 
with two arguments, len() 


Python Programming Exercises, Gently Explained 
124 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   97   98   99   100   101   102   103   104   ...   124




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin