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

сортировка массива по двум критериям(или что-то вроде того) - C++

Восстановить пароль Регистрация
 
DEAL
Сообщений: n/a
05.11.2010, 23:08     сортировка массива по двум критериям(или что-то вроде того) #1
Дан массив int arr[n][2], нужно отсортировать первую строчку по возрастанию, если числа равны сравнивать соответственные значения во второй (гарантируется, что все числа во второй разные).
И вся проблема в том, что n=100000, а отсортировать нужно меньше чем за 0.5 сек. Конечно, написал с быстрой сортировкой, но по второй срочке не всегда сортируется.

Покажу, что есть, там ошибка в if-е, где равенство. Может быть, сначала отсортировать первую строчку, а потом пройтись еще раз и где числа равны применить сортировку по второй?
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
 
void sorting(int first, int last) 
{      
    int p = arr[(last - first)/2 + first][0]; 
    int temp;
    int i = first, j = last;
    while(i <= j) 
    {        
        while(arr[i][0] < p && i <= last)  ++i;
        while(arr[j][0] > p && j >= first) --j;
        if(i <= j) 
        {
            if(arr[i][0]==arr[j][0])
            {
                if(arr[j][1]<arr[i][1]) swap(arr[j][1],arr[i][1]);
            }
            else
            {
                swap(arr[j][1],arr[i][1]);
                swap(arr[j][0],arr[i][0]);
            }
            ++i; --j;            
        }      
    }      
    if(j > first) sorting(first, j);      
    if(i < last)  sorting(i, last);   
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2010, 23:08     сортировка массива по двум критериям(или что-то вроде того)
Посмотрите здесь:

C++ (STL LIST SORT) Сортировка по некольким критериям
Ввести x,y и в зависимости от того что введено - вывести 0 , 1 , или 2 C++
C++ 3.1 Посмотрите, вроде быстрая сортировка, в любом случае, можете переделать(лучше под с++)?
Нужен пример того, что работать вроде не должно, но работает C++
Сортировка файла записей по двум критериям C++
Sort vector, сортировка по двум полям структуры C++
C++ Сортировка вектора по двум полям
Сортировка вектора записей по двум полям одновременно C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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