Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
hardline
1

Time Limit Randomized Quicksort

07.11.2013, 00:17. Показов 534. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, сдаю программу с этой сортировкой в систему контеста, выдает таймлимит на 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;
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2013, 00:17
Ответы с готовыми решениями:

Next_permutation() и Time Limit
Задача https://www.e-olymp.com/ru/problems/364 Мой код: #include &lt;bits/stdc++.h&gt; using...

Матрица инцидентности = Time-limit exceeded
Как переделать программу, чтобы время ее выполнения было &lt;0.250 sec? #include &lt;iostream&gt; using...

Ошибка при решении задачи "Сумма максимума и минимума" - Time limit exceeded
Вот http://********/asp/do/index.asp?main=task&amp;id_course=1&amp;id_section=3&amp;id_topic=34&amp;id_problem=611...

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......"
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int hour, int min),...

0
07.11.2013, 00:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2013, 00:17
Помогаю со студенческими работами здесь

Сортировка по алгоритму randomized-quicksort
Нужен код сортировки массива за алгоритмом сортировки randomized- quicksort. Не могу найти.

Time limit exceeded
Решаю задачки на одном сайте, там есть онлайн компилятор. Моя VS справляется, но компилятор с сайта...

Time limit exceeded
Добрый день. Программа - бинарный поиск правой границы в упорядоченном множестве фраз. Возникает...

Time limit exceeded
http://acm.timus.ru/problem.aspx?space=1&amp;num=1196 Уже все перепробовал, и всегда возникает...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru