Sobes.tech
Senior

Pozitif ve negatif tam sayılardan oluşan bir dizi verildi. Bunu, tüm pozitif sayıları orijinal sırasıyla başta olacak şekilde sıralayın. Dizinin ikinci yarısında ne olduğu önemli değil.

sobes.tech yapay zeka

AI'dan gelen yanıt

Задача — переставить элементы массива так, чтобы все положительные числа оказались в начале, сохраняя их исходный порядок. Порядок отрицательных чисел во второй части не важен.

Решение можно реализовать, создав новый массив и сначала скопировав туда все положительные числа в порядке их появления, а затем добавив оставшиеся элементы (отрицательные и нули) в любом порядке.

Пример на 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 с минимальным дополнительным пространством, можно использовать алгоритм с двумя указателями, но сохранение порядка положительных чисел усложняет задачу и обычно требует дополнительной памяти.