Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.87/23: Рейтинг темы: голосов - 23, средняя оценка - 4.87
Psilon
Master of Orion
Эксперт .NET
6049 / 4907 / 903
Регистрация: 10.07.2011
Сообщений: 14,520
Записей в блоге: 5
Завершенные тесты: 4
1

Измерение длительности работы программы

10.07.2011, 13:27. Просмотров 4241. Ответов 3
Метки нет (Все метки)

Здравствуйте. Возник вопрос. У меня задача на сортировку массивов, требуется "получить оценку среднего времени выполнения и числа операций для разных N". Но проблема в том, что требуется сравнить пузырьковую сортировку и сортировку выбором. Если сравнивать количество перестановок, то для пузырька получается довольно большая цифра, а для выбора N-1. Если же считать количество сравнений, то получается, что у выбора в 2 раза больше итераций, чем у пузырька, что мне кажется, не есть правильно. Хотел в таком ракурсе измерить время, за которое выполняется сортировка, но процедура GetTime не хочет работать (не может найти модуль dos. Что делать?). Как мне еще заставить её пахать? Текст ниже, но он не совсем правильный имо:
Pascal
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
Program Sort;
Uses 
   crt;
Const
   N=1;  
Type
   Index=1..N;
   Item=Record
            key:integer;
            data:string;
            end;
   M=Array [index] of item;
Var
   BubbleArr, InsertArr, SelectArr:M;
   i:index;
   Bcount,Icount,Scount:integer;
Procedure BubbleSort;
     var
     i,j:index;
     temp:item;
     begin
     for i:= 2 to N do
        begin
        for j:=n downto i do
             If BubbleArr[j-1].key>BubbleArr[j].key then
             begin
             temp:=BubbleArr[j-1];
             BubbleArr[j-1]:=BubbleArr[j];
             BubbleArr[j]:=temp;
             inc(Bcount)
             end;
        end;
     end;  
Procedure InsertSort;
     var
         i,j,k:index;
         temp:item;
     begin
        for i:=2 to N do
        begin
        temp:=InsertArr[i];
        j:=1;
        while (Temp.key>InsertArr[j].key) and (j<=i-1) do
             inc(j);
        for k:=i-1 downto j do
             begin
             InsertArr[k+1]:=InsertArr[k];
             inc(Icount)
             end;
        InsertArr[j]:=temp        
        end;
end;
Procedure SelectSort;
       var
         i, j, k: index;
         temp:item;
       begin
         for i := 1 to N-1 do
         begin
           k:= i;
           temp:= SelectArr[i];
           for j := i+1 to N do 
                begin
                   inc(Scount);
                   if SelectArr[j].key<temp.key then
                   k := j;
                end;           
           SelectArr[k] := SelectArr[i]; 
           SelectArr[i] := temp;
         end;
     end;
begin
clrscr;
randomize(1);
For i:= 1 to n do
     begin
     BubbleArr[i].key:=random(10);
     InsertArr[i].key:=BubbleArr[i].key;
     SelectArr[i].key:=BubbleArr[i].key;
     write(BubbleArr[i].key:2)
     end;
BubbleSort;
writeln;
writeln;
For i:=1 to N do
     write(BubbleArr[i].key:2);
writeln;
writeln;
InsertSort;
For i:=1 to N do
      write(InsertArr[i].key:2);
writeln;
writeln;
SelectSort;
For i:=1 to N do
      write(SelectArr[i].key:2);
For i:=1 to 3 do writeln;
writeln('Number of the Bubble Sort iterations:',Bcount:8);
writeln('Number of the Insert Sort iterations:',Icount:8);
writeln('Number of the Select Sort iterations:',Scount:8);
readln;
end.
Добавлено через 10 минут
Кстати, паскаль PABC.Net
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2011, 13:27
Ответы с готовыми решениями:

Измерение длительности операции
Доброго времени суток! Есть программка для измерения длительности цикла с определенным количеством...

ATMega328P. Измерение длительности импульсов
Добрый день, уважаемые форумчане! То ли ввиду моей неопытности в написании программ для МК, то...

Измерение длительности сигнала с помощью stm32f429zi
Всем привет. Может stm32f429 аппаратно мерить длительность импульса ? Если может то как правильно...

Измерение длительности входного сигнала на ATmega8
Здравствуйте!Существует следующее задание для ОМК ATmega 8: Если длительность сигнала...

Помогите настроить таймер на измерение длительности импульса
&quot;тема по&quot; HC-SR04 Ultrasonic Sensor Dystance Measuring Module. Хочу сделать на его основе...

3
Puporev
Модератор
58048 / 44170 / 30512
Регистрация: 18.05.2008
Сообщений: 105,756
10.07.2011, 14:00 2
но процедура GetTime не хочет работать (не может найти модуль dos. Что делать?
Не пользоваться модулями Турбо Паскаль.
В Паскаль АВС это модуль Utils, а в .net и этого нет...
0
Psilon
Master of Orion
Эксперт .NET
6049 / 4907 / 903
Регистрация: 10.07.2011
Сообщений: 14,520
Записей в блоге: 5
Завершенные тесты: 4
10.07.2011, 14:46  [ТС] 3
В общем я поставил обычный abc, он ругается на "неизвестный идентификатор GetTime"
Sort.pas(103) : Неизвестное имя 'GetTime'
0
Puporev
Модератор
58048 / 44170 / 30512
Регистрация: 18.05.2008
Сообщений: 105,756
10.07.2011, 14:55 4
Цитата Сообщение от Psilon Посмотреть сообщение
он ругается на "неизвестный идентификатор GetTime"
А я кому писал?
Цитата Сообщение от Puporev Посмотреть сообщение
Не пользоваться модулями Турбо Паскаль.
В Паскаль АВС это модуль Utils,
Добавлено через 1 минуту
Открой Помощь, модуль Utils и читайте.

Добавлено через 1 минуту
Модуль Utils содержит различные вспомогательные процедуры и функции (работа с файлами и каталогами, с датой, форматирование строк и пр.). Ниже приводится интерфейс модуля Utils:

type
DateTime = record
Day, Month, Year, Hour, Minute, Second, Milliseconds: integer;
end;
........................................
Milliseconds - функция, возвращающая количество миллисекунд с момента начала выполнения программы;
Вот и все.

Добавлено через 1 минуту
Или 2 раза вызываем
CurrentDateTime - функция, возвращающая текущие дату и время;
и считаем разницу времени как с GetTime.
1
10.07.2011, 14:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2011, 14:55

Измерение время работы программы
как измерить?

Измерение времени работы программы
Доброго времени суток. Такой вот вопрос:нужно написать программу,которая будет подсчитывать время...

Измерение времени работы программы
Народ, помогите, как измерить время работы программы, чтоб после выполнения цикла он вывел время в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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