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

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

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

Определить время, за которое сортируется массив - C++

24.03.2012, 20:25. Просмотров 447. Ответов 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++
1) Даны целые числа M и N (0&lt;M&lt;=12, 0&lt;=N&lt;=60), указывающие момент времени: «M часов, N минут». Определить наименьшее время (число полных...

Зная квалификацию игроков определить общее число подтягиваний, которое совершат оба игрока за время игры - C++
Пусть квалификация первого игрока равна A, а квалификация второго равна B. Обозначим количество подтягиваний в подходе для первого игрока...

Требуется по начальному расположению деталей на первом конвейере определить время, через которое все детали будут изготовлены - C++
Совсем не могу разобраться в программе помогите пожалуйста. Имеются три конвейера. Конвейеры работают независимо друг от друга....

Определить наименьшее время, которое должно пройти до того момента, когда часовая и минутная стрелка на циферблате совпадут - C++
помоги, буду очень благодарна) Записать тернарную операцию для решения данной задачи. Не использовать условный оператор. Составлять...

Массив не сортируется - C++
Здравствуйте. Программа не сортирует массив, не могу разобраться в чем проблема. Сортировка вставкой. (Да, я знаю,что она достаточно...

Почему не сортируется массив? - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Rus&quot;); ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,184
Завершенные тесты: 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
Сообщений: 246
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
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
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
Сообщений: 246
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++
#include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int main(){ int s = 9; ...

Неправильно сортируется массив по возрастанию и не находится минимальный элемент - C++
#include &lt;windows.h&gt; #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; template &lt;class Type&gt; void vvod(Type *a,int n); ...

Подскажите, за которое время работает рекурсивная функции F - C++
Используется синтаксис c++ int F(int n) { if(n == 1) { return 1; } else { return...


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

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

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