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

Сортировка динамических структур методом шелла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Степень двойки http://www.cyberforum.ru/cpp-beginners/thread345890.html
Изучаю программирование. Попытался решить известную задачу. Программа компилируется, но если ввести к примеру 8 она выдает "no". В чем я ошибся? #include<iostream> using namespace std; int...
C++ Вывод массива. Программа работает, но код... запутаться можно. Есть ли способы попроще? Заранее спасибо. #include <iostream> #include <ctime> using namespace std; int main () { int... http://www.cyberforum.ru/cpp-beginners/thread345866.html
C++ friend не видит приватные поля
Всем привет. Возникла проблема. Есть такой header #include <windows.h> #include <windowsx.h> class Intercept; class Dot { private: FLOAT X,Y,Z;
Помогите с компилятором C++
Вечер добрый... Помогите советом. Не могу скопилировать программу. Использую для этого Dev C++. Когда пробую компилировать, выходит куча ошибок. Мол не найдены такие то сякие библиотеки и так...
C++ Описание двух "пересекающихся" классов http://www.cyberforum.ru/cpp-beginners/thread345849.html
Как сделать два класса в которых методы используют параметры с типами друг-друга class c1 { public: int param; int method(c2 param); }; class c2 { public: int param; int...
C++ Как правильно? Совершать итерацию, по куску памяти выделенному в куче? например int* t = new int ; Как перемещаться. С каким шагом? Или struct S { int a; подробнее

Показать сообщение отдельно
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
27.08.2011, 20:25  [ТС]
я знаю что есть пример сортировки обычного массива но я не знаю как пристроить эту функцию сюда:
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
106
107
108
109
110
111
#include <iostream>
using namespace std;
 
int n;
 
void shellsort(elem *a, int n);
int increment(long inc[], int n);
 
struct disk
{
    int number, year, quantity;
    char title[15], executors[50];
};
 
struct elem
{
    disk data;
    elem *pnext;
    elem *prev;
};
 
elem *pfirst = 0;
elem *plist = 0;
 
void show()
{
    elem *tmp = pfirst;
    cout<<"\n";
    while (tmp) {
        cout<<tmp->data.number<<"  "<<tmp->data.title<<"  "<<tmp->data.quantity
            <<"  "<<tmp->data.executors<<"  "<<tmp->data.year<<"\n";
        tmp = tmp->pnext;
    }
}
 
void addend()
{
    elem *tmp = new elem;
    cout<<"Enter number: ";
    cin>>tmp->data.number;
    cout<<"Enter title: ";
    cin>>tmp->data.title;
    cout<<"Enter quantity: ";
    cin>>tmp->data.quantity;
    cout<<"Enter executors: ";
    cin>>tmp->data.executors;
    cout<<"Enter year: ";
    cin>>tmp->data.year;
    if (!plist) {
        tmp->pnext = 0;
        tmp->prev = 0;
        plist = tmp;
        pfirst = plist;
    }
    else {
        plist->pnext = tmp;
        tmp->prev = plist;
        tmp->pnext = 0;
        plist = tmp;
    }
}
 
int main()
{
    int i;
    cout<<"Enter an amount of disks: ";
    cin>>n;
    for (i = 0; i < n; i++) addend();
    show();
 
    system("pause");
    return 0;
}
 
 
/*
int increment(long inc[], int n) {
 int p1, p2, p3, s;
 
  p1 = p2 = p3 = 1;
  s = -1;
  do {
    if (++s % 2) {
      inc[s] = 8*p1 - 6*p2 + 1;
    } else {
      inc[s] = 9*p1 - 9*p3 + 1;
      p2 *= 2;
      p3 *= 2;
    }
        p1 *= 2;
  } while(3*inc[s] < n);  
 
  return s > 0 ? --s : 0;
}
 
 
void shellsort(elem *a, int n) {
  long inc, i, j, seq[40];
  int s;
 
  s = increment(seq, n);
  while (s >= 0) {
        inc = seq[s--];
    for (i = inc; i < n; i++) {
      int temp = a[i];
      for (j = i-inc; (j >= 0) && (a[j] > temp); j -= inc)
        a[j+inc] = a[j];
      a[j+inc] = temp;
    }
  }
}
нада отсортировать за элементом year
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru