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

САМАЯ БЫСТРАЯ сортировка! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ структура http://www.cyberforum.ru/cpp-beginners/thread88376.html
дана структура отдела кадров и сотрудников в отделе, нужно к этой структуре дописать сортировку по стажу работы и вывод сотрудников пенсионного возраста #include <iostream.h> #include <windows.h> struct SOTRUDNIK { char LastName; char FirstName; char MiddleName; char pol; char Specialnost; char godRogdeniya;
C++ Найти количество символов в строке Написать программу для подсчёта количества символов в любой строке http://www.cyberforum.ru/cpp-beginners/thread88369.html
произведение элементов в строках C++
В прямоугольном массиве N×M определите произведение элементов в тех строках, которые не содержат ни одного нулевого элемента.
C++ можно в консоле C++
Определить класс "Автомобиль", предусмотрев в нем компонентные данные: марка, цвет, серийный номер, регистрационный номер, год выпуска, цена. Предусмотреть функции для доступа к отдельным компонентам класса, вывод на экран элементов класса, добавление элемента, удаление элемента. Использовать указатель this. И такую же, использующую механизм наследования
C++ написать прототип функции http://www.cyberforum.ru/cpp-beginners/thread88348.html
типа нужно написать сначала работу стандартной функции strrchr, а потом создать прототип этой функции который делает тоже самое. использовать динамически распределяемую память
C++ Масcивы Дана целочисленная прямоугольная матрица. Определить количество столбцов, Не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы называеться сумма ее полжительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик. подробнее

Показать сообщение отдельно
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224

САМАЯ БЫСТРАЯ сортировка! - C++

22.01.2010, 00:29. Просмотров 12492. Ответов 59
Метки (Все метки)

Теоретически и практически доказано, что сортировка OVERPOWER8 - самая быстрая в мире.

Характеристика:
Требуется памяти: 3*N
Количество шагов в любом случае: 3*N
Стабильная: ДА
Метод: Замена

Если не верите, то можете проверить:

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
#include <iostream>
#include <stdlib.h>
using namespace std;
 
const int SIZE=2000000;
 
void sort(int arr[])
{
    int max=arr[0];
    
    int i;
    
    for(i=0; i<SIZE; i++)
        if(arr[i] > max)
            max = arr[i];
    
    int* Sorted = new int[max+1];
    
    for(i=0; i<SIZE; i++)
        Sorted[arr[i]]+=1;
    
    int counter=0;
    
    for(i=0; i<=max; i++)
        while(Sorted[i])
        {
            arr[counter++]=i;
            Sorted[i]--;
        }
        
    delete [] Sorted;
}
 
int main()
{
    srand(time(0));
 
    int Max=2000000;
    
    int i, j;
    
    int array[SIZE];
    
    for(i=0; i<SIZE; i++)
        array[i]=rand()%Max+1;
        
    sort(array);
    
    cout << "Sorted!\n";
    
    /*
    for(i=0; i<SIZE; i++)
        cout << array[i] << " ";
    */
    
    return 0;
}
P. S. при использовании элементов более 2000000, требуется использовать другой тип данных, например, uint64_t.

Не знаю, почему codepad.org выдает Segmentation Fault,
у меня на Linux G++ все работает замечательно.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru