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

Time Limit Randomized Quicksort - C++

Восстановить пароль Регистрация
 
hardline
Сообщений: n/a
07.11.2013, 00:17     Time Limit Randomized Quicksort #1
Помогите, пожалуйста, сдаю программу с этой сортировкой в систему контеста, выдает таймлимит на 91ом из 100 тесте. Что делать? Вроде как всё учёл при сортировке. Буду безмерно благодарен.

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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <iterator>
#include <utility>
 
using namespace std;
 
template <typename T>
void swaping (T &a, T &b)
{
    T c;
    c = a;
    a = b;
    b = c;
}
 
template<class RandomAccessIterator>
RandomAccessIterator partitioning (RandomAccessIterator first,
                             RandomAccessIterator last)
{
    RandomAccessIterator beg = first - 1;
    int pivot = *(last - 1);
 
    for (RandomAccessIterator end = first; end != last - 1; ++end)
 
        if (*end < pivot + 1)
        {
            ++beg;
            swaping (*beg, *end);
        }
 
    swaping (*(beg + 1), *(last - 1));
    return (beg + 1);
 
}
 
template<class RandomAccessIterator>
RandomAccessIterator random_partitioning (RandomAccessIterator first,
                                    RandomAccessIterator last)
{
    RandomAccessIterator random_iterator = rand()% (last - first - 1) + first;
    swaping (*(random_iterator), *(last - 1));
    return partitioning<RandomAccessIterator> (first, last);
}
 
template<class RandomAccessIterator>
void quick_sort (RandomAccessIterator first,
                 RandomAccessIterator last)
{
    if (first < last - 1)
    {
        RandomAccessIterator median = random_partitioning<RandomAccessIterator> (first, last);
        quick_sort<RandomAccessIterator> (first, median);
        quick_sort<RandomAccessIterator> (median + 1, last);
    }
}
 
template <class RandomAccessIterator>
void quick_sortn (RandomAccessIterator first, RandomAccessIterator last)
{
    while (first < last - 1)
    {
        RandomAccessIterator median = random_partitioning<RandomAccessIterator> (first, last);
        if (median - first < last - median)
        {
            quick_sortn(first, median);
            first = median + 1;
        }
        else
        {
            quick_sortn(median, last);
            last = median;
        }
    }
}
 
int main ()
{
    int size;
    cin >> size;
    vector <int> v;
 
    for (int i = 0; i < size; ++i)
    {
        int inp;
        cin >> inp;
        v.push_back(inp);
    }
 
    //vector <int>::iterator first = v.begin();
    //vector <int>::iterator last = v.end() - 1;
 
    cout << endl;
 
    cout << endl << endl;
 
    quick_sortn<vector <int>::iterator> (v.begin(), v.end());
 
    cout << endl;
 
 
    for (vector <int>::iterator it = v.begin(); it < v.end(); ++it) cout << *it << ' ';
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2013, 00:17     Time Limit Randomized Quicksort
Посмотрите здесь:

stdlib.h - quicksort C++
C++ Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......"
C++ QuickSort
C++ клас Time через time(0)
QuickSort найдите ошибку C++
Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). C++
C++ Прокомментировать код. QuickSort
Класс "Время". Двусмысленность между time и std:time(long*) C++

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

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

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