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

Time Limit Randomized Quicksort - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использовать готовый код http://www.cyberforum.ru/cpp-beginners/thread1000203.html
Доброго времени суток. Есть готова реализация Хеш-таблицы с поиком, добавлением и удалением элементов. Вопрос в том, как воспользоваться функцией поиска и отразить результат поиска ? Поиск выполняется по значению - есть в таблице, выводим. Сам код: #include <iostream.h> #include <fstream> #define compEQ(a,b) (a == b)
C++ поиск через рекурсию С помощью массива структур описать каталог компьютерных игр, предусмотрев следующие характеристики: название, производитель, год издания, жанр, объем на диске, платформа. Предусмотреть операцию поиска по жанру, платформе. #include <conio.h> #include <iostream> #include <stdio.h> #include <locale> using namespace std; int main() http://www.cyberforum.ru/cpp-beginners/thread1000197.html
Вставка и удаление объектов пользовательского класса в deque C++
Доброго времени суток! У меня есть контейнер хранящий объекты пользовательского класса Detail: deque< Detail* > accumulator1 ( 1, nullptr ); Вопрос, как можно добавлять новые объекты посредством push_back и удаление объектов посредством pop_front.
C++ Где ошибка ?
Найти наибольший общий делитель для двух целых чисел. #include <iostream> using namespace std; int main() { int a,b; cout<<"Enter number a"; cin>>a; cout<<"Enter number b"; cin>>b;
C++ Сортировка массива http://www.cyberforum.ru/cpp-beginners/thread1000173.html
Я делала программу и у меня возник ступор из-за того, что я не могу сортировать массив объектов. Вроде не сложно, но этот абстрактный класс меня сбивает с толку. Описать полиморфнy функцию,которая принимает своим параметром указатель на интерфейс: сортировка массива объектов по их номерам (использовать interface_1). Буду очень благодарна всем, кто откликнется!!! main.cpp # include...
C++ Переопределение типа "class" Как я понял, ошибка "переопределение типа "class"" означает что класс уже был где-то объявлен, однако у меня он вроде нигде больше не объявлен. Вот снизу скрин и кину проект(потому-что 11 файлов и расписывать что тут где как-то неудобно) подробнее

Показать сообщение отдельно
hardline
Сообщений: n/a

Time Limit Randomized Quicksort - C++

07.11.2013, 00:17. Просмотров 209. Ответов 0
Метки (Все метки)

Помогите, пожалуйста, сдаю программу с этой сортировкой в систему контеста, выдает таймлимит на 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru