Форум программистов, компьютерный форум CyberForum.ru

Сортировка методом четных и нечетных транспозиций - C++

Восстановить пароль Регистрация
 
MonoRec
1 / 1 / 0
Регистрация: 24.11.2013
Сообщений: 84
17.11.2014, 15:57     Сортировка методом четных и нечетных транспозиций #1
Добрый день. Необходимо отсортировать массив методом четных и нечетных транспозиций.
Написал, но не работает, не сортирует массив.



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 15:57     Сортировка методом четных и нечетных транспозиций
Посмотрите здесь:

C++ Сумма четных и нечетных в диапазоне от 1 до 100
C++ Сортировка четных/нечетных элементов массива
C++ количество четных и нечетных элементов
C++ Оределение четных и нечетных числе массива
Числа. Подсчитать количество четных и нечетных чисел- разрядов. Найти суммы только всех четных и только нечетных, проверить какая из сумм больше C++
Вычислить сумму четных и произведения нечетных C++
C++ Количество четных и нечетных
C++ выделение из массива четных и нечетных чисел

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
assembler2014
3 / 3 / 3
Регистрация: 16.10.2014
Сообщений: 28
17.11.2014, 19:10     Сортировка методом четных и нечетных транспозиций #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Здравствуйте. Ну во-первых, обмен элементов неправильный
у вас
C++
1
2
3
int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i]=m;
а нужно
C++
1
2
3
int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i+1]=m;
Во-вторых, в этих циклах:
C++
1
 for (int i=1;i<N;i+=2)
и здесь
C++
1
for (int i=2;i<N;i+=2)
никогда не происходит обращение к первому элементу массива, т.е к Mas[0]
Ну и с циклом for внешним не совсем понятно.(do while здесь логичнее)
В общем, вот рабочий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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;
    }
//Ñîðò
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
int res;
do
 {
     res=0;
     for (int i=0;i<N-1;i+=2)
     {
       if(Mas[i]>Mas[i+1]) 
       {
         int m=Mas[i];
         Mas[i]=Mas[i+1];
         Mas[i+1]=m;
         res=1;
       }
     } 
     for (int i=1;i<N-1;i+=2)
     {
       if(Mas[i]>Mas[i+1]) 
       {
         int m=Mas[i];
         Mas[i]=Mas[i+1];
        Mas[i+1]=m;
         res=1;
      }
 } 
}while(res==1);
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
    for (int p = 0; p < N; p++)
    {
        cout <<p+1<<". " << Mas[p] << endl;
    }
Если что будет непонятно, спрашивайте.
Yandex
Объявления
17.11.2014, 19:10     Сортировка методом четных и нечетных транспозиций
Ответ Создать тему
Опции темы

Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru