Не выходит сортировка простыми включениями - C#
Формулировка задачи:
Нужно отсортировать одномерный массив по модулю по возрастанию.
На выходе получается , что последний элемент массива перекидывает в начало массива, и дальше начинается сортировка.
Например дан массив:
1 5 9 -4 81 -15 10
Массив после сортировки:
10 -4 5 9 10 -15 81
ЧЯДНТ?
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;
}
Не просто перекидывает, а перезаписывает первое число последним и последнее ещё включает в сортировку. Делал по методичке - 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;
}