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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С чего начать изучение С++ http://www.cyberforum.ru/cpp-beginners/thread679582.html
Здравствуйте ув. Участники форума. Хотелось бы спросить у профессионалов, с чего же все таки начать изучение С++? Практически с этим не знаком, только теоретически, вот некоторые возникшие вопросы: ...
C++ Собственная реализация функции конкатенации Вопрос в комментарии к коду. Объясните пожалуйста (см. ниже что именно) #include <stdio.h> void strсat(char *s1, char *s2) { while(*s1) s1++; // доходим до '\0' while(*s2) { *s1=*s2;... http://www.cyberforum.ru/cpp-beginners/thread679572.html
Список C++
Нужно написать список. Не могу объединить начало и конец в конструкторе struct Ticket { double date; Ticket *next; Ticket *prev; };
Массив => Int C++
Как преобразовать массив в переменную Int? В массиве находится четырехзначное число.
C++ Одновременное выполнение действий без использования потоков/процессов http://www.cyberforum.ru/cpp-beginners/thread679542.html
Нужно ожидать ввода команды со стандартного потока и в то же время в начале каждого часа вызывать некую функцию ( func назовем). Возможно-ли реализовать без потоков и fork'ов ( хочу один процесс,...
C++ Объявление функции (непонятно) Не могу понять, чем отличаются объявления функции в 1 и 2 вариантах? Смысл писать в 1 ванианте отдельно прототип функции(первую строчку: long fibonachi (int)), а потом, после главной программы main... подробнее

Показать сообщение отдельно
Bsod
28 / 12 / 2
Регистрация: 30.11.2011
Сообщений: 44
02.11.2012, 21:05  [ТС]
конечно, возможно это индус-код, но я только учусь... итак, надо отсортировать список по возрасту (год, месяц, день), я создал отдельно функцию для сортировки года, месяца и дня. Делал сортировку пузырьком

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
void year_sort()
    {
    STUDENT *a, *b, *tmp; //а - это tmp->next, b - это tmp->next->next
    bool f;
    do
    {
        f = false;
        if (phead->next && phead->year < phead->next->year)
            {
                a = phead->next;
                phead->next = phead->next->next;
                a->next = phead;
                phead = a;
                f = true;
            } //перестановка первых двух элементов
        tmp = phead;
        while(tmp->next && tmp->next->next)
        {
            a = tmp->next;
            b = tmp->next->next;
            if (a->year < b->year)
            {
                tmp->next=b;
                a->next = b->next;
                b->next = a;
                f = true;
            }
            tmp = tmp->next;
        } 
    } while(f); //перестановка всех остальных элементов
    }
void month_sort() //с сортировкой по месяцам и дням аналогично
    {
    STUDENT *a, *b, *tmp;
    bool f;
    do
    {
        f = false;
        if (phead->next && phead->month < phead->next->month && phead->year == phead->next->year)
            {
                a = phead->next;
                phead->next = phead->next->next;
                a->next = phead;
                phead = a;
                f = true;
            }
        tmp = phead;
        while(tmp->next && tmp->next->next)
        {
            a = tmp->next;
            b = tmp->next->next;
            if (a->month < b->month && a->year == b->year)
            {
                tmp->next=b;
                a->next = b->next;
                b->next = a;
                f = true;
            }
            tmp = tmp->next;
        }
    } while(f);
    }
void day_sort()
    {
    STUDENT *a, *b, *tmp;
    bool f;
    do
    {
        f = false;
        if (phead->next && phead->day < phead->next->day && phead->year == phead->next->year && phead->month == phead->next->month)
            {
                a = phead->next;
                phead->next = phead->next->next;
                a->next = phead;
                phead = a;
                f = true;
            }
        tmp = phead;
        while(tmp->next && tmp->next->next)
        {
            a = tmp->next;
            b = tmp->next->next;
            if (a->day < b->day  && a->year == b->year && a->month == b->month)
            {
                tmp->next=b;
                a->next = b->next;
                b->next = a;
                f = true;
            }
            tmp = tmp->next;
        }
    } while(f);
    }
//сортировка по возрасту
int sort()
{
    if (!phead) {cout << "Список пуст\n"; return 0;}
    year_sort();
    month_sort();
    day_sort();
    t = phead;
    while (t) t = t->next;
cout << "Список отсортирован\n";
return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru