Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для KatyKova
1 / 1 / 0
Регистрация: 09.11.2013
Сообщений: 109

Время работы сортировки

23.05.2016, 14:06. Показов 3352. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вычислить время работы сортировки, но всегда получается ноль. Что неверно???
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
#include <stddef.h>
#include <iostream>
#include <time.h>
 
using namespace std;
//функция, сливающая массивы
void Merge(int *A, int first, int last)
{
int middle, start, final, j;
int *mas=new int[100];
middle=(first+last)/2; //вычисление среднего элемента
start=first; //начало левой части
final=middle+1; //начало правой части
for(j=first; j<=last; j++) //выполнять от начала до конца
if ((start<=middle) && ((final>last) || (A[start]<A[final])))
{
mas[j]=A[start];
start++;
}
else
{
mas[j]=A[final];
final++;
}
//возвращение результата в список
for (j=first; j<=last; j++) A[j]=mas[j];
delete[]mas;
};
//рекурсивная процедура сортировки
void MergeSort(int *A, int first, int last)
{
{
if (first<last)
{
MergeSort(A, first, (first+last)/2); //сортировка левой части
MergeSort(A, (first+last)/2+1, last); //сортировка правой части
Merge(A, first, last); //слияние двух частей
}
}
};
//главная функция
void main()
{
setlocale(LC_ALL, "Rus");
int i, n;
int *A=new int[100];
double start, stop;
 
cout<<"Размер массива = "; cin>>n;
cout<<"Исходный массив: "<<endl;;
for (i=1; i<=n; i++)
{ A[i] = rand()%50; // запись случайного числа, которое вернет rand()
 cout << A[i]<<" ";
}
cout<<endl;
start=clock();
MergeSort(A, 1, n); //вызов сортирующей процедуры
stop=clock();
cout<<"Упорядоченный массив: "<<endl; //вывод упорядоченного массива
for (i=1; i<=n; i++) cout<<A[i]<<" ";
printf("\nВремя: %g\n",stop-start);
delete []A;
system("pause>>void");
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2016, 14:06
Ответы с готовыми решениями:

Время работы алгоритма сортировки
Добрый день, есть программа сортировки методом MergSort. Нужно, чтобы после сортировки вывелось за сколько секунд алгоритм смог...

Подсчёт время работы алгоритма сортировки
Пытаюсь посчитать время работы алгоритма в миллисекундах, но постоянно выходит минусовое число. Как написать правильно? start_time =...

Сравнить время работы алгоритмов сортировки
Нужно сравнить время работы алгоритмов сортировки на больших последовательностях, сгенерированных определенным образом (случайная, частично...

3
Заблокирован
23.05.2016, 14:14
Если не смотреть на код, то есть 2 предложения. Массив сделать намного больше. 100 элементов для замера скорости - это несерьезно.
Но для начала поставь перед
Цитата Сообщение от KatyKova Посмотреть сообщение
stop=clock();
задержку короткую, чтобы проверить, что твой механизм замера вообще работает.
0
 Аватар для Alamant
13 / 13 / 9
Регистрация: 16.05.2016
Сообщений: 49
23.05.2016, 15:29
С размером что-то надо сделать. Хотя бы
C++
1
#define MAX_SIZE 10000
и потом в Merge
C++
1
int *mas = new int[MAX_SIZE];
в main
C++
1
int *A = new int[MAX_SIZE];
Потом вывод на экран лучше закомментировать. Он медленный.
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
24.05.2016, 18:40
Лучший ответ Сообщение было отмечено KatyKova как решение

Решение

Лучше попробуй использовать операторы GetTickCount() или QueryPerformanceCounter() совместно с QueryPerformanceFrequency() это подойдет и к твоему циклу. clock() очень грубый, я им не пользуюсь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2016, 18:40
Помогаю со студенческими работами здесь

Время работы сортировки вставками для разных размерностей массива
Друзья, подскажите: в чём проблема? Нужны временные показания работы сортировки с различными размерностями массива, для построения графика....

Посчитать время события - время работы кассиров (система массового обслуживания)
Есть программа, моделирующая следующую задачу (система массового обслуживания): В бухгалтерии предприятия имеются два кассира, каждый...

Выводить текущее время в определенные позиции консоли во время работы
Портирую консольное приложение. Есть код, который работал после компиляции в BC++ 3.1, после компиляции под MinGW GCC программа не...

Ввести производительности работы трех труб, которые наполняют бассейн, и время их работы. Сколько набрано в бассейне?
Ввести производительности работы трех труб, которые наполняют бассейн, и время их работы. Сколько набрано в бассейне?

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru