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

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

Восстановить пароль Регистрация
 
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
27.08.2011, 19:48     Сортировка динамических структур методом шелла #1
Дайте пример сортировки динамических структур методом шелла...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2011, 19:48     Сортировка динамических структур методом шелла
Посмотрите здесь:

Сортировка методом Шелла C++
Сортировка методом шелла C++
C++ Сортировка методом Шелла
Сортировка строк матрицы методом Шелла C++
C++ Формирование, сортировка и обработка динамических структур данных.
C++ Сортировка массива методом Шелла
C++ Сортировка методом Шелла
Сортировка методом Шелла C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
advan
0 / 0 / 0
Регистрация: 20.11.2010
Сообщений: 25
27.08.2011, 20:25  [ТС]     Сортировка динамических структур методом шелла #2
я знаю что есть пример сортировки обычного массива но я не знаю как пристроить эту функцию сюда:
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
Yandex
Объявления
27.08.2011, 20:25     Сортировка динамических структур методом шелла
Ответ Создать тему
Опции темы

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