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

Задача Таблица результатов - C++

Восстановить пароль Регистрация
 
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
09.03.2013, 13:12     Задача Таблица результатов #1
Старое программное обеспечение для проведения соревнований использует пузырьковую сортировку для создания таблицы результатов. Однако сейчас команд слишком много, и программное обеспечение работает слишком медленно. Вас попросили написать программу, которая создаёт такую же таблицу результатов, как и старое программное обеспечение, но быстро.
Исходные данные
Первая строка входных данных содержит только целое число 1 < N ≤ 150 000 — количество команд. Каждая из следующих N строк содержит два целых числа: 1 ≤ ID ≤ 107 и 0 ≤ M ≤ 100. ID — уникальный номер команды, а M — количество решённых этой командой задач.
Результат
Вывод должен содержать N строк с двумя целыми числами ID и M в каждой. Строки должны быть отсортированы в порядке убывания M с помощью пузырьковой сортировки (или аналога).

Решить то её просто но нужно уложится во время 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
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <iomanip>
using namespace std;
 
struct M
{
       int iD;
       int a;
};
 
void SortM( M massiv[] , long size , char sim )
{
     M insert;
     long moveItem;
     if( sim == '>' )
     {
      for( int next = 0; next < size; next++ )
      {
          insert = massiv[ next ];
          moveItem = next;
          
          while( ( moveItem > 0 )&&( massiv[ moveItem - 1 ].a > insert.a ) )
          {
                 massiv[ moveItem ] = massiv[ moveItem - 1 ];
                 moveItem--;
          }
          massiv[ moveItem ] = insert;
      }
     }
     else
     {
         for( int next = 0; next < size; next++ )
         {
          insert = massiv[ next ];
          moveItem = next;
          
          while( ( moveItem > 0 )&&( massiv[ moveItem - 1 ].a < insert.a ) )
          {
                 massiv[ moveItem ] = massiv[ moveItem - 1 ];
                 moveItem--;
          }
          massiv[ moveItem ] = insert;
         }
     }
}
 
 
int main()
{
    int n;
    
    cin >> n;
    
    M *m = new M[ n ];
    for( int i = 0; i < n; i++ )
    cin >> m[ i ].iD >> m[ i ].a;
    
    SortM( m, n, '<' );
    
    for( int i = 0; i < n; i++ )
    {
         cout << m[ i ].iD << " " << m[ i ].a << '\n';
    }
    
    return 0;
}
Выдает что много времени. Как ускорить прогу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2013, 13:12     Задача Таблица результатов
Посмотрите здесь:

C++ Анализ результатов
Таблица лексем и таблица идентификаторов C++
занесение в файл результатов в С++ C++
нужен скрин результатов C++
C++ Задача Таблица. За одно обращение к каждому элементу массива необходимо каждый элемент заменить ближайшим большим следующим за ним
Тестирование, вывод результатов C++
C++ Вывод результатов с форматированием
C++ Вывод результатов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,286
Завершенные тесты: 1
10.03.2013, 16:10     Задача Таблица результатов #2
http://ru.wikipedia.org/wiki/%D0%91%...B2%D0%BA%D0%B0
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
10.03.2013, 16:36  [ТС]     Задача Таблица результатов #3
прост мне кажется что в условии говорят чтобы я пузырком отсортировал. Я правильно пузырьком зделал?
Yandex
Объявления
10.03.2013, 16:36     Задача Таблица результатов
Ответ Создать тему
Опции темы

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