В массиве отсортировать положительные числа по возрастанию, отрицательные по убыванию - 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]);

Объяснение кода листинга программы

В данном коде выполняется сортировка массива по двум критериям: положительные числа по возрастанию, а отрицательные числа по убыванию.

  1. Создается два вложенных цикла for, первый из которых идет от i=0 до n-1, а второй от j=i до n-1.
  2. Если arr[i] положительное число и arr[j] положительное число, и arr[i] больше arr[j], то с помощью функции swap меняются местами arr[i] и arr[j]. Это происходит для положительных чисел по возрастанию.
  3. Если arr[i] отрицательное число и arr[j] отрицательное число, и arr[i] меньше arr[j], то с помощью функции swap меняются местами arr[i] и arr[j]. Это происходит для отрицательных чисел по убыванию.
  4. Если выполняется первое условие (когда два положительных числа), или второе условие (когда два отрицательных числа), или ни одно из этих условий не выполняется, то ничего не происходит.
  5. После завершения циклов, массив будет отсортирован по заданным критериям.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы