Senior
დაწესებულა დადებითი და უარყოფითი მთელი რიცხვების მასივი. მასივის სორტირება ისე, რომ ყველა დადებითი რიცხვი იყოს დასაწყისში და მათი ორიგინალური რიგი იყოს შენახული. მასივის მეორე ნახევარში რა იქნება, მნიშვნელობა არა აქვს.
sobes.tech AI
პასუხი AI-სგან
Задача — переставить элементы массива так, чтобы все положительные числа оказались в начале, сохраняя их исходный порядок. Порядок отрицательных чисел во второй части не важен.
Решение можно реализовать, создав новый массив и сначала скопировав туда все положительные числа в порядке их появления, а затем добавив оставшиеся элементы (отрицательные и нули) в любом порядке.
Пример на Python:
arr = [3, -1, 2, -5, 4, -2]
positives = [x for x in arr if x > 0]
others = [x for x in arr if x <= 0]
result = positives + others
print(result) # [3, 2, 4, -1, -5, -2]
Если нужно сделать это in-place с минимальным дополнительным пространством, можно использовать алгоритм с двумя указателями, но сохранение порядка положительных чисел усложняет задачу и обычно требует дополнительной памяти.