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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функции http://www.cyberforum.ru/cpp-beginners/thread88223.html
Составить программу вычисления данного выражения: y=(min(x+y,y)+min(x+z,y))/(1-min(x,z+0.2)) , где min(a,b)- функция нахождения наименьшего из двух чисел. В долгу не останусь!!!!
C++ C++ Многопоточность Как сделать так, чтобы эта программа заработала? А то она мне вот что пишет: g++ test.cpp -o test -lpthread ./test Segmentation fault #include <pthread.h> http://www.cyberforum.ru/cpp-beginners/thread88161.html
Составить программу, которая определяет углы треугольника со сторонами а, b, с. C++
Тема: «Программирование с использованием функций» .Составить программу, которая определяет углы треугольника со сторонами а, b, с.
Неправильная запись в файл C++
#pragma hdrstop #pragma argsused #include <fstream> #include <iostream> #include <string> #include<sstream> using namespace std; /*Нахождение простых чисел с помощью решета Эратосфена*/ int* Sieve_of_Eratosthenes(int n)
C++ можеш посмотреть http://www.cyberforum.ru/cpp-beginners/thread87863.html
вообще не понимаю
C++ очень нада лабы... 2. Составить программу вычисления данного выражения: , где - функция нахождения наименьшего из двух чисел. подробнее

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

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

22.01.2010, 00:29. Просмотров 12183. Ответов 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++ все работает замечательно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru