Hey, so i am struggling with the last part of this questions.
i tried print("Sorted array: " + str(numbers) ) and it didn’t work, I also tried print("Sorted array: ", str(numbers)) and it also failed, so i am confused what could be the problem
Your code so far
def merge_sort(array):
if len(array) <= 1:
return
middle_point = len(array) // 2
left_part = array[:middle_point]
right_part = array[middle_point:]
merge_sort(left_part)
merge_sort(right_part)
left_array_index = 0
right_array_index = 0
sorted_index = 0
while left_array_index < len(left_part) and right_array_index < len(right_part):
if left_part[left_array_index] < right_part[right_array_index]:
array[sorted_index] = left_part[left_array_index]
left_array_index += 1
else:
array[sorted_index] = right_part[right_array_index]
right_array_index += 1
sorted_index += 1
while left_array_index < len(left_part):
array[sorted_index] = left_part[left_array_index]
left_array_index += 1
sorted_index += 1
while right_array_index < len(right_part):
array[sorted_index] = right_part[right_array_index]
right_array_index += 1
sorted_index += 1
# User Editable Region
if __name__ == '__main__':
numbers = [4, 10, 6, 14, 2, 1, 8, 5]
print('Unsorted array: ')
print(numbers)
merge_sort(numbers)
# User Editable Region
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Challenge Information:
Learn Data Structures by Building the Merge Sort Algorithm - Step 33
Yes i did still it didn’t work, i even copied the string which is supposed to be printed, i also tried using the f-string in my print function, and i also didn’t work
I’m not sure about the indentation because the code is not properly formatted, but you need to concatenate 'Sorted array: ' and str(numbers). You are not doing it here.
I’ve edited your code for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.
You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.
if __name__ == '__main__':
numbers = [4, 10, 6, 14, 2, 1, 8, 5]
print('Unsorted array: ')
print(numbers)
merge_sort(numbers)
print('Sorted array: ' + str(numbers)) # I tried this
print('Sorted array: ', str(numbers) # I also tried this
print(f'Sorted array: {str(numbers)}') # And this
Thank you by the way for taking your time to assist a fellow like me, much appreciated