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

Сортировка структур - C++

Восстановить пароль Регистрация
 
Miteud
2 / 2 / 0
Регистрация: 13.11.2013
Сообщений: 109
17.05.2014, 18:06     Сортировка структур #1
Хочу отсортировать структуру по номеру поезда пузырьковым методом. Написал такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
    
station *train = new station[N];
station tmp;
    for(i = 0; i < N - 1; i++)
        {
            if (train[i + 1].num_train < train[i].num_train)
            {
                tmp = train[i + 1];
                train[i + 1] = train[i];
                train[i] = tmp;
            }
        }
N ввожу отдельно
Увы, он работает лишь для 2 данных структуры. Подскажите, в чём ошибка.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 18:06     Сортировка структур
Посмотрите здесь:

C++ Сортировка структур
Сортировка структур C++
Сортировка структур с++ C++
C++ Сортировка структур
C++ Сортировка структур
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dogg12
 Аватар для dogg12
58 / 24 / 6
Регистрация: 21.02.2011
Сообщений: 510
17.05.2014, 19:04     Сортировка структур #2
возможно порядок не правильный у вас, почему вы пишите так:
C++
1
2
3
tmp = train[i + 1];
                train[i + 1] = train[i];
                train[i] = tmp;
у вас ошибка в алгоритме сортировки, попробуйте записать так:
C++
1
2
3
tmp = train[i ];
                train[i ] = train[i+1];
                train[i+1] = tmp;
kupnu4
26 / 26 / 9
Регистрация: 03.05.2013
Сообщений: 71
17.05.2014, 21:20     Сортировка структур #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
вы явно прикалываетесь. для пузырьковой сортировки нужны два цикла.
C++
1
2
3
4
5
6
7
8
9
10
11
station *train = new station[N];
    for(i = 0; i < N-1; i++)
        for(j = i+1; j < N; j++)
        {
            if (train[i].num_train < train[j].num_train)
            {
                 station tmp = train[j];
                train[j] = train[i];
                train[i] = tmp;
            }
        }
Miteud
2 / 2 / 0
Регистрация: 13.11.2013
Сообщений: 109
17.05.2014, 23:05  [ТС]     Сортировка структур #4
Большое спасибо за помощь !
Yandex
Объявления
17.05.2014, 23:05     Сортировка структур
Ответ Создать тему
Опции темы

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