Как поменять сортировку слиянием так, чтобы сортировались только положительные элементы? 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

Ответы (0 шт):