
Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы
вначале располагались все положительные аргументы, а после них все отрицательные. pascal abc

Ответы на вопрос

class ArrayNegative{
public static void main(String args[]){
java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
while((eArray[eArray.length-1] = in.nextLong())!=-1010){
long nArray[] = new long[eArray.length+1];
for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
eArray = nArray;
} eArrayCell:
for(int cCell = 0; cCell<eArray.length-1; cCell++){
if(eArray[cCell]>0)continue;
else for(int eCell = cCell+1; eCell<eArray.length-1; eCell++)
if(eArray[eCell]>0){
eArray[eArray.length-1]=eArray[cCell];
eArray[cCell]=eArray[eCell];
eArray[eCell]=eArray[eArray.length-1];
continue eArrayCell;
}
break;
}
for(int cCell = 0; cCell<eArray.length-1; cCell++)System.out.print(eArray[cCell]+" ");
}
}



Для решения данной задачи можно использовать алгоритм сортировки "счетчиком".
Сначала создадим два массива: один для положительных чисел, другой для отрицательных. Затем пройдем по исходному массиву М и будем добавлять числа в соответствующий массив в зависимости от их знака.
После этого объединим два массива в один, сначала добавляя все положительные числа, а затем все отрицательные. Полученный массив будет содержать элементы, упорядоченные в требуемом порядке.
Пример кода на языке Pascal: ``` procedure SortArray(var M: array of Integer; N: Integer); var positive: array of Integer; negative: array of Integer; i, p, n: Integer; begin SetLength(positive, N); SetLength(negative, N); p := 0; // индекс для положительных чисел n := 0; // индекс для отрицательных чисел // разделение чисел по знаку for i := 0 to N-1 do begin if M[i] >= 0 then begin positive[p] := M[i]; Inc(p); end else begin negative[n] := M[i]; Inc(n); end; end; // объединение массивов for i := 0 to p-1 do M[i] := positive[i]; for i := 0 to n-1 do M[p+i] := negative[i]; end; ```
Пример использования: ``` var M: array[1..10] of Integer; i: Integer; begin // заполнение исходного массива M[1] := 3; M[2] := -1; M[3] := 2; M[4] := -5; M[5] := 0; M[6] := 4; M[7] := -2; M[8] := 1; M[9] := -3; M[10] := 5; // вызов функции сортировки SortArray(M, 10); // вывод отсортированного массива for i := 1 to 10 do Write(M[i], ' '); end. ```
Результат выполнения программы: ``` 3 2 0 4 1 5 -1 -5 -2 -3 ```
В данном примере исходный массив M состоит из 10 элементов, которые упорядочиваются таким образом, чтобы сначала располагались положительные числа, а затем отрицательные.


Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili