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