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

Сложности распределения памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача (Программирование циклических вычислительных процессов) http://www.cyberforum.ru/cpp-beginners/thread1039217.html
Прошу помочь. Программирование циклических вычислительных процессов 1. Справочная информация При усложнении решаемых задач ход выполнения программ становится более запу-танным. Чтобы иметь возможность управлять процессом выполнения программ его организа-цией используются такие структуры как циклы. Циклы необходимы. Когда надо повторить некоторые действия несколько раз, как правило, пока...
C++ Сортировка структур в алфавитном порядке Есть массив структур, которые содержат русское слово и его английский перевод. Надо отсортировать по английским словам в алфавитном порядке. Как это проще всего реализовать? Добавлено через 15 часов 45 минут Ап! http://www.cyberforum.ru/cpp-beginners/thread1039212.html
2 прстые задачи C++
Кто поможет с двумя простенькими задачами?? 1- Написать программу, которая бы по номеру дня недели (целому числу от 1 до 7) выдавала бы количество уроков в вашей группе (или сообщение «выходной»). 2- Определить, поместится ли квадрат площади P в круг площади S или круг поместится в квадрат, или они не поместятся друг в друга (центры круга и квадрата находятся в одной точке). Ответ вывести на...
C++ Удалить из матрицы А строки, которые содержат все повторяющиеся эле-менты первой строки
Дана матрица состоящая из М строк и N столбцов. Элементами матрицы являются натуральные числа. Удалить из матрицы строки, которые содержат все повторяющиеся элементы первой строки. Вывести на экран измененное состояние матрицы или сообщение «Нет», если значения матрицы не удалялись.
C++ .Построить матрицу a[n][n] вида: http://www.cyberforum.ru/cpp-beginners/thread1039172.html
динамические матрицы дано n .Построить матрицу a вида: 0 . 0 0 0 1 пример n=3 300 020 001
 

Показать сообщение отдельно
BlackDay28
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 8
12.12.2013, 20:51     Сложности распределения памяти
Ребят, никогда не писал под студию, всё время на Dev C++, там проблем с изначальным кодом не было, программа работала прекрасно, а вот в студии ругается на то что переменная в массиве, только с динамическими массивами пока как то не очень получается, ругается на неверное распределение памяти
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <stdio.h>
#include <ctime>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#define A  10000
using namespace std;
int arr[10000];
void Quick(int l,int r,int*arr);
void Random(int*arr,int num)
{
            for (int n=0; n<num ; n++) arr[n]=0+rand()%10;
}
int Time(int t1,int t2)
{
    return t2-t1;
}
void Scaler(int  &num)
{
    num*=10;
}
int Bubble(int num)
{
    int t1=clock();
    for (int p=0;p<A;p++)
    {
         int *arr = new int[num];
    Random(arr,num);
    
    int temp;
            for (int i=1; i<=num ; i++)
              {
                for (int j=1; j<=num-i; j++) 
                    {
                        if (arr[j]>arr[j+1]) 
                            {
                                 temp=arr[j]; 
                                 arr[j]=arr[j+1];
                                 arr[j+1]=temp;
                            }
                    }
               }
                delete [] arr;
               }
    
               int t2=clock();
                return Time(t1,t2);
}
int Shell(int num)
{
int t1=clock();
    for (int p=0;p<A;p++)
    {
         int *arr = new int[num];
                Random(arr,num);
        int step = num / 2;
        while (step > 0)
    {
      for (int i = 0; i < (num - step); i++)
                {
                    int j = i;
                    while (j >= 0 && arr[j] > arr[j + step])
                    {
                        int temp = arr[j];
                        arr[j] = arr[j + step];
                        arr[j + step] = temp;
                        j--; 
                    }
                }
                step = step / 2;
                delete[] arr;   
            }
         
}
    
   int t2=clock();
               return   Time(t1,t2);
}
int QuickTime(int l,int r,int num)
{
    
        int t1=clock();
            for (int o=0;o<A;o++)
{   
    int *arr = new int[num];
    Random(arr,num);
        Quick(0,num-1,arr);
        delete [] arr;
    }
                
         int t2=clock();
   return Time(t1,t2);
}
void Quick(int l,int r,int*arr)
{   
    int x = arr[l + (r - l) / 2];
    int i = l;
    int j = r;
    while(i <= j)
    {
        while(arr[i] < x) i++;
        while(arr[j] > x) j--;
        if(i <= j)
        {
            swap(arr[i], arr[j]);
            i++;
            j--;
        }
    }
    if (i<r)
                Quick(i, r,arr);
    
    if (l<j)    
        Quick(l, j,arr);   
}
 
void Merge(int l, int r,int num) {
 
   
    if (r == l)
        return;
    if (r - l == 1) { 
        if (arr[r] < arr[l])
            swap(arr[r], arr[l]);
        return;
    }
    int m = (r + l) / 2;
    Merge(l, m, num);
    Merge(m + 1, r, num);
   int *buf = new int[num];
    int xl = l;
    int xr = m + 1;
    int cur = 0;
    while (r - l + 1 != cur) {
        if (xl > m)
            buf[cur++] = arr[xr++];
        else if (xr > r)
            buf[cur++] = arr[xl++];
        else if (arr[xl] > arr[xr])
            buf[cur++] = arr[xr++];
        else buf[cur++] = arr[xl++];
 
    }
    for (int i = 0; i < cur; i++) arr[i + l] = buf[i];
}
 
int MergeTime(int l,int r,int num)
{
    
 
    int t1=clock();
        for (int o=0;o<A;o++)
{
        Random(arr,num);
    Merge(0,num-1,num);
    
    delete [] &arr;
}
        int t2=clock();
        return Time(t1,t2);
}
int main()
{
    
    cout << "\\\Cycles ="<<A<<"///";
    int num=10;
    for(int i=0;i<4;i++)
    {
     int *arr = new int[num];
cout << "\n///Bubble Sort/// \n--------------------\nNumber of elements = "<<num<<"\nTime of work = " << Bubble(num)<<"ms\n-------------------";
cout << "\n///Shell Sort/// \n--------------------\nNumber of elements = "<<num<<"\nTime of work = " << Shell(num)<<"ms\n-------------------";
cout << "\n///Merge Sort/// \n--------------------\nNumber of elements = "<<num<<"\nTime of work = " << MergeTime(0,num-1,num)<<"ms\n-------------------";      
cout << "\n///Quick Sort/// \n--------------------\nNumber of elements = "<<num<<"\nTime of work = " << QuickTime(0,num-1,num)<<"ms\n-------------------";      
Scaler(num);
}
cout << "\\\END///";
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru