В массиве отсортировать положительные числа по возрастанию, отрицательные по убыванию - Assembler
Формулировка задачи:
Приветствую!
Помогите, пожалуйста, с решением задачи.
В массиве отсортировать положительные числа по возрастанию, отрицательные по убыванию, нули оставить на месте.
Основная часть программы на с++, а алгоритм обработки массива - на ассемблере(вставка в visual studio c++).
Заранее спасибо. Завтра зачет, не успеваю сделать
Решение задачи: «В массиве отсортировать положительные числа по возрастанию, отрицательные по убыванию»
textual
Листинг программы
for(int i=0; i<n;i++) for(int j=i; j<n;j++) if(arr[i]>0 && arr[j]>0 && arr[i] > arr[j]) swap(arr[i], arr[j]); else if(arr[i]<0 && arr[j]<0 && arr[i] <arr[j] swap(arr[i], arr[j]);
Объяснение кода листинга программы
В данном коде выполняется сортировка массива по двум критериям: положительные числа по возрастанию, а отрицательные числа по убыванию.
- Создается два вложенных цикла for, первый из которых идет от i=0 до n-1, а второй от j=i до n-1.
- Если arr[i] положительное число и arr[j] положительное число, и arr[i] больше arr[j], то с помощью функции swap меняются местами arr[i] и arr[j]. Это происходит для положительных чисел по возрастанию.
- Если arr[i] отрицательное число и arr[j] отрицательное число, и arr[i] меньше arr[j], то с помощью функции swap меняются местами arr[i] и arr[j]. Это происходит для отрицательных чисел по убыванию.
- Если выполняется первое условие (когда два положительных числа), или второе условие (когда два отрицательных числа), или ни одно из этих условий не выполняется, то ничего не происходит.
- После завершения циклов, массив будет отсортирован по заданным критериям.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д