def sort_array(source_array):
    odd = sorted([x for x in source_array if x % 2 != 0])
    k = 0
    res = []
    for x in source_array:
        if x % 2 == 0:
            res.append(x)
        else:
            res.append(odd[k])
            k += 1
    return res
print(sort_array([5, 3, 2, 8, 1, 6]))




# В этой задаче нужно отсортировать только нечётные числа, а чётные оставить на своих местах.
# Сначала я вытаскиваю все нечётные числа в отдельный список и сортирую его.
# Потом прохожу по исходному списку. Чётное число оставляю как есть, а на место нечётного подставляю следующее из отсортированного списка.