Не выходит сортировка простыми включениями - C#

Узнай цену своей работы

Формулировка задачи:

Нужно отсортировать одномерный массив по модулю по возрастанию.
            for(int i = 2; i<n; i++)
            {
                x = mas[i];
                mas[0] = x;
                j = i - 1;
                while(Math.Abs(x)<Math.Abs(mas[j]))
                {
                    mas[j + 1] = mas[j];
                    j = j - 1;
                }
                mas[j + 1] = x;
            }
На выходе получается , что последний элемент массива перекидывает в начало массива, и дальше начинается сортировка. Например дан массив: 1 5 9 -4 81 -15 10 Массив после сортировки: 10 -4 5 9 10 -15 81 ЧЯДНТ?
Не просто перекидывает, а перезаписывает первое число последним и последнее ещё включает в сортировку. Делал по методичке - http://hosting.vspu.ac.ru/~chul/program/sortmass.pdf

Решение задачи: «Не выходит сортировка простыми включениями»

textual
Листинг программы
    double x;
    int j;
    for (int i = 1; i < n; i++)
    {
        x = mas[i];
        j = i - 1;
        while (j >= 0 && Math.Abs(x) > Math.Abs(mas[j]))
        {
            mas[j + 1] = mas[j];
            j = j - 1;
        }
        mas[j + 1] = x;
    }

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


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

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

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