Форум программистов, компьютерный форум, киберфорум
Наши страницы

Бистрая сортировка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать фото товара в 4 колонки? http://www.cyberforum.ru/cpp-beginners/thread989330.html
создаю сайт, застрял на этапе выравнивания каталога товаров. Пропишите пожалуйста код в CSS для выравнивания фотографий на главной странице в 4 столбца.
C++ Найти произведение цифр числа 1. Найдите сумму положительных четных чисел меньших 100. 2. Дано целое число K. Найти произведение цифр числа К. 3. Найти сумму десяти чисел кратных 3. все программы должны быть с... http://www.cyberforum.ru/cpp-beginners/thread989319.html
Класс на основе заданной структуры данных C++
Необходимо разработать программу, реализующую простой класс на основе заданной структуры данных. Код я смогла написать не знаю конечно может и не совсем правильно я только начинаю учить С++....
C++ Обработка текста с использованием списка
как с использованием списка реализовать следущее: взявши произвольный текст, вывести в консоль все слова, которые начинаются с буквы, отличной от буквы, с которой начинается первое слово текста....
C++ input.txt http://www.cyberforum.ru/cpp-beginners/thread989299.html
Формат входного файла Первая строка входного файла содержит натуральные числа n (1≤ n≤20) и W (1≤ W≤ 109). Каждая из последующих n строк содержит описание одного предмета. Каждое описание состоит из...
C++ Часы Правильный ли код? #include <iostream> using namespace std; int main () { int k, h, m; cin >> k; h = k / 30; m = k*2 % 60; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1245 / 994 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
27.10.2013, 14:52
Цитата Сообщение от castaway Посмотреть сообщение
Разве она будет работать быстрее чем qsort?
Наверняка. Инлайнинг творит чудеса.

Behold:
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
#include <cstdlib>
 
#include <algorithm>
#include <random>
#include <vector>
 
const int size = 10000000;
 
int compare(const void *a, const void *b)
{
    return (*(static_cast<const int*>(a)) - *(static_cast<const int*>(b)));
}
 
int main()
{
    std::default_random_engine getRandomNumber;
 
    std::vector<int> array(size);
 
    for (int i = 0; i < size; i++) {
        array[i] = getRandomNumber();
    }
 
#ifdef QSORT
    ::qsort(&array.at(0), size, sizeof(int), compare);
#else
    std::sort(array.begin(), array.end());
#endif
}
Код
$ g++ -std=c++11 -O2 -DQSORT cpp.cpp

$ time ./a.out
real    0m3.260s
user    0m0.000s
sys     0m0.031s

$ g++ -std=c++11 -O2 cpp.cpp

$ time ./a.out
real    0m1.674s
user    0m0.000s
sys     0m0.031s
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru