Learn Data Structures by Building the Merge Sort Algorithm - Step 18

Tell us what’s happening:

I’ve tried various ways of copying a list and assigning it to array list such as

array = left_array.copy()
array.append(left_array)

or even simply

array = left_array

I’m not sure any other variations of this will work and can’t think of solutions outside of attempting to copy/add the left_array into array. I might be oversimplifying it, but I’d appreciate any guidance.

Your code so far

``````def merge_sort(array):

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

# User Editable Region

while left_array_index < len(left_part):

# User Editable Region

``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:122.0) Gecko/20100101 Firefox/122.0`
The actual copying is not yet in this stop. This step requires just placing the new `while` loop. Keep in mind that new loop should be inside of the function.