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

Как исправить данный код сортировки? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Слабо создать программу, которая много чего делает, а в main только return 0? http://www.cyberforum.ru/cpp-beginners/thread88424.html
Пояснение: Имеется некая функции Function() {} Причем она может делать что угодно. Кто-то знает, как запустить эту функцию НЕ из main? Например: void Function() // Любая ф-ия, которая делает что угодно. (Пример) { cout << "Succeed!\n";
C++ САМАЯ БЫСТРАЯ сортировка! Теоретически и практически доказано, что сортировка OVERPOWER8 - самая быстрая в мире. Характеристика: Требуется памяти: 3*N Количество шагов в любом случае: 3*N Стабильная: ДА Метод: Замена Если не верите, то можете проверить: http://www.cyberforum.ru/cpp-beginners/thread88396.html
Функции C++
Составить программу вычисления данного выражения: 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>
C++ Составить программу, которая определяет углы треугольника со сторонами а, b, с. http://www.cyberforum.ru/cpp-beginners/thread87993.html
Тема: «Программирование с использованием функций» .Составить программу, которая определяет углы треугольника со сторонами а, b, с.
C++ Неправильная запись в файл #pragma hdrstop #pragma argsused #include <fstream> #include <iostream> #include <string> #include<sstream> using namespace std; /*Нахождение простых чисел с помощью решета Эратосфена*/ int* Sieve_of_Eratosthenes(int n) подробнее

Показать сообщение отдельно
OVERPOWER8
 Аватар для OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 13:38  [ТС]     Как исправить данный код сортировки?
>> zim22

Спасибо, использование динамического массива исправило некоторые проблемы.
Если не сложно, то проверьте этот код на вашем компиляторе. А то мой G++ компилирует, и потом работает; а codepad.org выдает segmentation fault.

И почему-то мой компилятор при использовании элементов больше 1 000 000 000 тоже пишет ахинею какую-то:
Bash
1
2
3
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted
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
#include <iostream>
#include <stdlib.h>
#include <limits>
using namespace std;
 
const int SIZE=100000000;
 
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 = new int[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] << " ";
        */
        
        delete [] array;
 
        return 0;
}
 
Текущее время: 04:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru