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