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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
2e1553ce
1 / 1 / 1
Регистрация: 16.12.2011
Сообщений: 47
#1

время за которое сортируется массив - C++

24.03.2012, 20:25. Просмотров 437. Ответов 7
Метки нет (Все метки)

Подскажите как узнать время за которое отсортировался массив (mas)
Внизу программы где используется InsertSort и массив уходит на сортировку(чтобы после в консоле
вывелось на экран время сортировки)
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
using namespace std;
const int MAX=1000;
 ////////////////////////////////////////////////////////////////////////////////
void insertSort(int* a, int size) 
{
    int i, j, tmp;
    for (i = 1; i < size; ++i) // цикл проходов, i - номер прохода
    {
        tmp = a[i];     
            for (j = i - 1; j >= 0 && a[j] > tmp; --j) // поиск места элемента в готовой последовательности 
            a[j + 1] = a[j];    // сдвигаем элемент направо, пока не дошли
        a[j + 1] = tmp; // место найдено, вставить элемент    
    }
}
/////////////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    int mas[MAX];
    for(int i=0; i<MAX; i++)
        mas[i] = 0+rand()%1000;
    for(int i=0;i<MAX;i++)
    {
        if(i%10==0)
        {
        cout<<endl;
        }
        cout<<" "<<mas[i];
    }
    insertSort(mas,MAX);
    for(int i=0;i<MAX;i++)
    {
        if(i%10==0)
        {
        cout<<endl;
        }
        cout<<" "<<mas[i];
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2012, 20:25     время за которое сортируется массив
Посмотрите здесь:

Определить наименьшее время, которое должно пройти до того момента, когда часовая и минутная стрелки совпадут C++
C++ Время, через которое встретятся два тела
Определить время, через которое встретятся два тела, равноускоренно движущиеся навстречу друг другу C++
Алгоритм(Найти максимальное совершенное число, которое в то же время меньше введенного N) C++
C++ Почему не сортируется массив?
C++ Почему не сортируется массив?
C++ Почему не сортируется массив?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6180 / 5783 / 1872
Регистрация: 18.12.2011
Сообщений: 14,776
Завершенные тесты: 1
24.03.2012, 20:31     время за которое сортируется массив #2
Вот пример из MS Help
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
// crt_clock.c
// This example prompts for how long
// the program is to run and then continuously
// displays the elapsed time for that period.
//
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void sleep( clock_t wait );
 
int main( void )
{
   long    i = 6000000L;
   clock_t start, finish;
   double  duration;
 
   // Delay for a specified time.
   printf( "Delay for three seconds\n" );
   sleep( (clock_t)3 * CLOCKS_PER_SEC );
   printf( "Done!\n" );
 
   // Measure the duration of an event.
   printf( "Time to do %ld empty loops is ", i );
   start = clock();
   while( i-- ) 
      ;
   finish = clock();
   duration = (double)(finish - start) / CLOCKS_PER_SEC;
   printf( "%2.1f seconds\n", duration );
}
 
// Pauses for a specified number of milliseconds.
void sleep( clock_t wait )
{
   clock_t goal;
   goal = wait + clock();
   while( goal > clock() )
      ;
}
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
24.03.2012, 22:47     время за которое сортируется массив #3
C++
1
2
3
4
5
6
7
8
9
#include <time.h>
.....................
clock_t start = 0,end = 0;
start = clock(); // начинаем замер времени
.........................................................
//процесс, длительность коротого измеряем
........................................................
end=clock(); // заканчиваем замер времени
cout << end - start;//вывод затраченного времени в милисекундах
2e1553ce
1 / 1 / 1
Регистрация: 16.12.2011
Сообщений: 47
25.03.2012, 00:59  [ТС]     время за которое сортируется массив #4
Цитата Сообщение от LVV Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
#include <time.h>
.....................
clock_t start = 0,end = 0;
start = clock(); // начинаем замер времени
.........................................................
//процесс, длительность коротого измеряем
........................................................
end=clock(); // заканчиваем замер времени
cout << end - start;//вывод затраченного времени в милисекундах
А в чем измеряется?
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
25.03.2012, 01:28     время за которое сортируется массив #5
2e1553ce, не совсем, там в тактах.
C++
1
2
3
4
5
6
7
8
9
#include <time.h>
.....................
clock_t start = 0,end = 0;
start = clock(); // начинаем замер времени
.........................................................
//процесс, длительность коротого измеряем
........................................................
end=clock(); // заканчиваем замер времени
cout << (double) (end - start) / CLOCKS_PER_SEC;
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
25.03.2012, 22:19     время за которое сортируется массив #6
neske, Вы совершенно правы.
Давно хтел спросить... может Вы разьясните.
Почему, например, такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
clock_t start = 0,end = 0;
 
start = clock(); // начинаем замер времени
 
//.........................................................
for (long i=0; i<100000000; i++);
//........................................................
 
end=clock(); // заканчиваем замер времени
 
cout << end - start << endl;
cout << (double) (end - start) / CLOCKS_PER_SEC << endl;
 
system ("pause");
return 0;
}
выведет:
225
0.225
(или что-то похожее)
Почему так?
Если CLOCKS_PER_SEC определяет количество тактов системных часов в секунду, то от чего зависит это количество тактов системных часов в секунду? От операционной системы?
Тогда выходит, что в Windows количество таких тактов в секунду - тысяча.
То есть end - start - это интервал времени в тысячных долях секуны (в Windows, разумеется)...
????
Где ошибка в моих рассуждениях?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
26.03.2012, 10:53     время за которое сортируется массив #7
Цитата Сообщение от zss Посмотреть сообщение
while( goal > clock() ) ;
За такое бьют. Долго и больно.

C++
1
::Sleep( x );
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 11:08     время за которое сортируется массив
Еще ссылки по теме:

C++ Найти минимальное время, за которое можно поджарить все котлеты
Получить время за которое выполнена задача C++
C++ Зная квалификацию игроков определить общее число подтягиваний, которое совершат оба игрока за время игры
C++ Массив не сортируется
Вывести время, через которое второй поезд прибудет в конечный пункт в формате часы минуты C++

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

Или воспользуйтесь поиском по форуму:
Kuzia domovenok
1887 / 1742 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
26.03.2012, 11:08     время за которое сортируется массив #8
Цитата Сообщение от Deviaphan Посмотреть сообщение
За такое бьют. Долго и больно.
Побей Microsoft и Билла Г
Yandex
Объявления
26.03.2012, 11:08     время за которое сортируется массив
Ответ Создать тему
Опции темы

Текущее время: 14:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru