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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
#1

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

19.10.2013, 00:03. Просмотров 287. Ответов 4
Метки нет (Все метки)

Необходимо отсортировать структуру студент по группам а потом по ФИО. по группам сортирует а по ФИО уже нет, подскажите где косячу
C++
1
2
3
4
5
struct student
   {
        char FIO[50];
        int group;
   } ;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <typename T>
void groupSort(T a[], long size) {
    T x;
    long i, j,k;
    for(i=0;i<size;i++){  
        x=a[i];
//по группам
        for (j=i-1;j>=0&&a[j].group>x.group;j--)
                a[j+1]=a[j];    
        a[j+1] = x;
//дальше по фио
        for(k=0;k<size;k++){ 
        x=a[k];
        for (j=k-1;j>=0&&a[j].FIO<x.FIO;j--)
                a[j+1]=a[j];    
        a[j+1] = x;
        } 
    }
}
вот вывод
Nikolaev Nikolai 1
Fedorov Fedor 2
Ivanov Ivan 1
Alexeev Aleksei 2
Stepanov Stepan 1
Sorted:
Nikolaev Nikolai 1
Ivanov Ivan 1
Stepanov Stepan 1
Fedorov Fedor 2
Alexeev Aleksei 2

Для продолжения нажмите любую клавишу . . .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2013, 00:03     Сортировка внутри сортировки
Посмотрите здесь:

Алгоритмы сортировки (сортировка и вычисляемыми адресами, вычерпыванием, по индексам и с указателями). C++
C++ Лорин Гарольд - Сортировка и системы сортировки
Алгоритмы сортировки: прямые, улучшенные (Сортировка с помощью прямого включения (метод простых вставок)) C++
C++ [Сортировка слиянием] Уменьшить количество требуемой памяти для сортировки
Методы сортировки: QuickSort и сортировка вставкой C++
C++ Сортировка обменом массива. Усложненный вариант сортировки
C++ Сортировка Шелла. В чём ошибка?(код внутри)
C++ Сортировка последовательности методом быстрой сортировки
C++ Внешние сортировки. Сортировка слиянием. Простое слияние
Внешние сортировки. Сортировка слиянием. Естественное слияние C++
Сортировка координат (методом быстрой сортировки) C++
Сортировка внутри строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
Заблокирован
19.10.2013, 01:41     Сортировка внутри сортировки #2
Как происходит сравнение a[j].FIO<x.FIO (адреса чтоли сравниваешь)?
Вникать лень, а комментариев нету...
MrGluck
Ворчун
Эксперт CЭксперт С++
6435 / 3633 / 452
Регистрация: 29.11.2010
Сообщений: 9,602
19.10.2013, 01:44     Сортировка внутри сортировки #3
x, y - переменные
param1, param2 - параметры. Сначала надо отсортировать по param1, а при равенстве полей по param2
C++
1
2
3
4
5
6
7
8
if (x.param1 < y.param1)
{
 ...
}
else if (x.param1 == y.param1 && x.param2 < y.param2)
{
 ...
}
Добавлено через 39 секунд
Для массивов char оператор < не определен, необходимо использовать функцию strcmp
newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 555
19.10.2013, 01:47  [ТС]     Сортировка внутри сортировки #4
спасибо за ответы! завтра с утреца со свежей головой буду пробовать=)))
MrGluck
Ворчун
Эксперт CЭксперт С++
6435 / 3633 / 452
Регистрация: 29.11.2010
Сообщений: 9,602
19.10.2013, 01:48     Сортировка внутри сортировки #5
В чем суть шаблонов, если в итоге используются специфичные для него поля? Да и вообще, в чем их суть? Где здесь потенциально возможный общий код?

Добавлено через 36 секунд

Не по теме:

Цитата Сообщение от newb_programmer Посмотреть сообщение
завтра с утреца со свежей головой буду пробовать=)))
я смотрю у многих тут пятница наступила

Yandex
Объявления
19.10.2013, 01:48     Сортировка внутри сортировки
Ответ Создать тему
Опции темы

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