Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2014, 16:58   #1
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
По умолчанию Сортировка методом четных и нечетных транспозиций

Добрый день. Необходимо отсортировать массив методом четных и нечетных транспозиций.
Написал, но не работает, не сортирует массив.


Код:
int main ()
{   
int N;
cin>>N;
int *Mas = new int [N];
 
    for (int i = 0; i < N; i++)
        Mas[i] = rand() % 10;
 
    for (int p = 0; p < N; p++)
    {
        cout <<p+1<<". " << Mas[p] << endl;
    }
//Сорт
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
 
for(int res=1;res==0;)
 {
 for (int i=1;i<N;i+=2)
 {
   if(Mas[i]>Mas[i+1]) 
   {
     int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i]=m;
     res=1;
   }
 } 
 for (int i=2;i<N;i+=2)
 {
   if(Mas[i]>Mas[i+1]) 
   {
     int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i]=m;
     res=1;
  }
 } 
}
 
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
 
    for (int p = 0; p < N; p++)
    {
        cout <<p+1<<". " << Mas[p] << endl;
    }
    system("Pause");
}
BaTpyXaaa вне форума Ответить с цитированием
Старый 17.11.2014, 17:18   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Внимательнее будьте:
Код:
Mas[i+1]=m;
pu4koff вне форума Ответить с цитированием
Старый 17.11.2014, 17:40   #3
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Внимательнее будьте:
Код:
Mas[i+1]=m;
Все равно не сортирует
BaTpyXaaa вне форума Ответить с цитированием
Старый 17.11.2014, 17:57   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Да. Просмотрел. Еще тут:
Код:
for(int res=1;res==0;)
res == 0 - это условие не завершения работы цикла, а наоборот условие продолжения. Тут опять же должно быть res == 1. Первой строкой в теле этого цикла нужно выставить res=0.
Во вложенных циклах тоже немного нужно подправить, чтобы не выходить за границы массива:
Код:
for (int i=1;i+1<N;i+=2)
и так же во втором. Еще второй цикл нужно не с 2 начинать, а с нуля и их нужно поменять местами, если не ошибаюсь (там начало с нечетных, а у нас нечетное - первый элемент, но в сях индексация с нуля идёт, так что четные - нечетные ).
pu4koff вне форума Ответить с цитированием
Старый 17.11.2014, 18:07   #5
BaTpyXaaa
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 40
Радость

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Да. Просмотрел. Еще тут:
Код:
for(int res=1;res==0;)
res == 0 - это условие не завершения работы цикла, а наоборот условие продолжения. Тут опять же должно быть res == 1. Первой строкой в теле этого цикла нужно выставить res=0.
Во вложенных циклах тоже немного нужно подправить, чтобы не выходить за границы массива:
Код:
for (int i=1;i+1<N;i+=2)
и так же во втором. Еще второй цикл нужно не с 2 начинать, а с нуля и их нужно поменять местами, если не ошибаюсь (там начало с нечетных, а у нас нечетное - первый элемент, но в сях индексация с нуля идёт, так что четные - нечетные ).
Спасибо. Теперь все работает.
BaTpyXaaa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить кол-во четных и нечетных чисел harvey Помощь студентам 3 19.09.2012 21:06
посчитать к-во четных и нечетных элементов массива kwain Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 15.12.2011 10:41
произведение четных и нечетных leilochka777 Паскаль, Turbo Pascal, PascalABC.NET 2 24.10.2011 14:33
перестановка четных и нечетных столбцов матрицы Lowjedy Помощь студентам 1 10.05.2011 18:12
Сумма четных столбцов (в нечетных - текст) VictorM Microsoft Office Excel 6 23.10.2010 00:08