Как поменять сортировку слиянием так, чтобы сортировались только положительные элементы? python
Как поменять сортировку слиянием так, чтобы сортировались только положительные элементы, а отрицательные оставались на местах?
def merge_sort(arr): # Функция сортировки слиянием
if len(arr) > 1: #если длина списка больше 1
mid = len(arr)//2 #создадим два меньших списка, left и right
left = arr[:mid]
right = arr[mid:]
merge_sort(left) #отсортируем обе половины, вызывая для них merge_sort()
merge_sort(right)
i = j = k = 0
while i < len(left) and j < len(right):
if left[i] < right[j]: #Если число из списка left меньше, чем число из списка right
arr[k] = left[i] #вставляем его в массив на позицию k
i+=1 #увеличиваем индекс i на единицу
else: #Если число из списка right меньше или равно числу из списка left
arr[k] = right[j] #вставляем его в массив на позицию k
j+=1 #увеличиваем на единицу индекс j
k+=1 #после добавления любого из чисел в список, увеличиваем на единицу индекс k.
while i < len(left): #в цикле мы будем перебирать остаток элементов в списке left и добавлять их в массив
arr[k] = left[i]
i+=1
k+=1
while j < len(right): #в цикле мы будем перебирать остаток элементов в списке right и добавлять их в массив
arr[k] = right[j]
j+=1
k+=1