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

Сортировка файла записей по двум критериям - C++

Восстановить пароль Регистрация
 
Demiar
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 86
28.05.2014, 03:04     Сортировка файла записей по двум критериям #1
В общем, есть файл из записей, 4 поля, мне надо его отсортировать пирамидой, с помощью индексированного массива по 2м критериям, то есть главная сортировка по 1 полю, но как находит одинаковые строки в 1 поле, то он сортирует их по 2 полю, не врубаюсь вообще..вот сама сортировка через индексный по 1 полю..

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
void s(struct str mass[])
{
  int L,i,t,j,R,N;
  int x;
  N = 4000;
  L = N/2; 
  R = N;
  for (i=0;i<4000;i++)                                                          
    IndexMas_SummaVklada[i]=i;  
  while(L>0)
  {
    x = mass[IndexMas_SummaVklada[L]].summa;
    i = L;
    while(1)
    {
      j = 2*i;
      if(j>N)
        break;
      if( (j<N) && (mass[IndexMas_SummaVklada[j+1]].summa >= mass[IndexMas_SummaVklada[j]].summa) )
        j++;
      if ( x >= mass[IndexMas_SummaVklada[j]].summa )
        break;
      mass[IndexMas_SummaVklada[i]].summa = mass[IndexMas_SummaVklada[j]].summa;
      i = j;
    }
    mass[IndexMas_SummaVklada[i]].summa = x;
    L--;
  }
  R=N;
  while(R>1)
  {
    t = mass[IndexMas_SummaVklada[0]].summa;
    mass[IndexMas_SummaVklada[0]].summa = mass[IndexMas_SummaVklada[R]].summa;
    mass[IndexMas_SummaVklada[R]].summa = t; 
    R--;
    x = mass[IndexMas_SummaVklada[0]].summa; 
    i = 0; 
    while(1)
    {
      j = 2*i;
      if(j>R)
        break;
      if( (j<R) && (mass[IndexMas_SummaVklada[j+1]].summa >= mass[IndexMas_SummaVklada[j]].summa) ) 
        j++;
      if ( x >= mass[IndexMas_SummaVklada[j]].summa )
        break;
      mass[IndexMas_SummaVklada[i]].summa = mass[IndexMas_SummaVklada[j]].summa;
      i = j;
    }
    mass[IndexMas_SummaVklada[i]].summa = x; 
  }
    
}
Добавлено через 4 часа 40 минут
Ап теме...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 03:04     Сортировка файла записей по двум критериям
Посмотрите здесь:

C++ (STL LIST SORT) Сортировка по некольким критериям
C++ ввод данных, добавление данных, получение информации из файла по заданным критериям выборки
Считывание записей из файла (C++) C++
Sort vector, сортировка по двум полям структуры C++
C++ Сортировка вектора по двум полям
C++ Удаление записей из бинарного файла
Сортировка вектора записей по двум полям одновременно C++
C++ Сортировка записей класса через функцию qsort

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4306 / 3727 / 1256
Регистрация: 14.04.2014
Сообщений: 14,599
28.05.2014, 10:10     Сортировка файла записей по двум критериям #2
Дай нормальное описание, что за L, R и по каким полям сортировать.
Demiar
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 86
28.05.2014, 16:11  [ТС]     Сортировка файла записей по двум критериям #3
L и R эт левая и правая граница, пирамидальная сортировка!!! одно поле эт summa - главное поле, а если находит одинаковые строки, то сортирует по data

Добавлено через 1 час 51 минуту
поможет кто?

Добавлено через 3 часа 50 минут
хелпаните пасаны
Yandex
Объявления
28.05.2014, 16:11     Сортировка файла записей по двум критериям
Ответ Создать тему
Опции темы

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