Лекции.Орг


Поиск:




Измерение времени работы программы

В задании на лабораторную работу требуется измерить время работы программы. Для этого удобно воспользоваться стандартным классом Environment, который содержит свойство TickCount, в котором содержится время (в миллисекундах), прошедшее с момента загрузки операционной системы. Чтобы определить время работы какого-либо фрагмента кода, необходимо выполнить два замера времени (до и после этого фрагмента), а потом вычислить разность полученных значений. Для перевода результата в секунды можно разделить его на 1000.

Вот как может выглядеть текст функции Main(), в котором производится замер времени работы фрагмента кода:

static void Main(string[] args)

{   

// Здесь выполняется инициализация данных (ввод массивов и проч.)   

int t1 = Environment.TickCount;

// Здесь выполняется основная работа программы (например,

// сортировка массива и поиск данных.

int t2 = Environment.TickCount;

// Печать затраченного времени на экране

Console.WriteLine("Продолжительность работы: " + (t2 - t1) / 1000.0);

// Печать полученного массива

}

Указание к работе

Разработать и отладить программу, в которой реализовать алгоритмы сортировки и поиска в соответствии с заданием. Определить время работы программы.

Для выполнения задания необходимо использовать два одномерных массива целых чисел А[ M] и В[ N] (М и N – произвольные целые числа, не превышающие 214). Инициализируйте исходные массивы данными, после чего отсортируйте массивы с использованием алгоритма, указанного в вашем задании. Создайте одномерный массив С, который содержит элементы, отвечающие условию задания, в одном экземпляре (без повторений). Сравните время работы программы при следующих размерах исходных массивов: 100, 1000, 5000, 10000, 15000 элементов.

Указание: Вспомогательные массивы использовать запрещается, если в алгоритме сортировки не оговорено обратное.

 

Варианты индивидуальных заданий

  Задание Сложность Алгоритм сортировки Алгоритм поиска
1. элементы, присутствующие в обоих массивах А и В 1 Пузырьком Линейный
2. элементы, которые есть только в массиве А или только в массиве В 1 Пузырьком Линейный
3. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 1 Пузырьком Линейный
4. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 1 Пузырьком Линейный
5. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 1 Пузырьком Линейный
6. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 1 Пузырьком Линейный
7. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 1 Пузырьком Линейный
8. элементы массива А, повторяющиеся в массиве В несколько раз 1 Пузырьком Линейный
9. элементы присутствующие в обоих массивах А и В в одном экземпляре 1 Пузырьком Линейный
10. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 1 Пузырьком Линейный
11. повторяющиеся элементы массива А, которые есть в массиве В 1 Пузырьком Линейный
12. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 1 Пузырьком Линейный
13. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 1 Пузырьком Линейный
14. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 1 Пузырьком Линейный
15. повторяющиеся элементы массива А, которых нет в массиве В 1 Пузырьком Линейный
16. элементы, присутствующие в обоих массивах А и В 2 Выбором Линейный
17. элементы, которые есть только в массиве А или только в массиве В 2 Выбором Линейный
18. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 2 Выбором Линейный
19. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 2 Выбором Линейный
20. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 2 Выбором Линейный
21. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 2 Выбором Линейный
22. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 2 Выбором Линейный
23. элементы массива А, повторяющиеся в массиве В несколько раз 2 Выбором Линейный
24. элементы присутствующие в обоих массивах А и В в одном экземпляре 2 Выбором Линейный
25. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 2 Выбором Линейный
26. повторяющиеся элементы массива А, которые есть в массиве В 2 Выбором Линейный
27. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 2 Выбором Линейный
28. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 2 Выбором Линейный
29. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 2 Выбором Линейный
30. повторяющиеся элементы массива А, которых нет в массиве В 2 Выбором Линейный
31. элементы, присутствующие в обоих массивах А и В 3 Вставками Линейный
32. элементы, которые есть только в массиве А или только в массиве В 3 Вставками Линейный
33. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 3 Вставками Линейный
34. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 3 Вставками Линейный
35. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 3 Вставками Линейный
36. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 3 Вставками Линейный
37. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 3 Вставками Линейный
38. элементы массива А, повторяющиеся в массиве В несколько раз 3 Вставками Линейный
39. элементы присутствующие в обоих массивах А и В в одном экземпляре 3 Вставками Линейный
40. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 3 Вставками Линейный
41. повторяющиеся элементы массива А, которые есть в массиве В 3 Вставками Линейный
42. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 3 Вставками Линейный
43. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 3 Вставками Линейный
44. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 3 Вставками Линейный
45. повторяющиеся элементы массива А, которых нет в массиве В 3 Вставками Линейный
46. элементы, присутствующие в обоих массивах А и В 4 Подсчетом Линейный
47. элементы, которые есть только в массиве А или только в массиве В 4 Подсчетом Линейный
48. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 4 Подсчетом Линейный
49. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 4 Подсчетом Линейный
50. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 4 Подсчетом Линейный
51. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 4 Подсчетом Линейный
52. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 4 Подсчетом Линейный
53. элементы массива А, повторяющиеся в массиве В несколько раз 4 Подсчетом Линейный
54. элементы присутствующие в обоих массивах А и В в одном экземпляре 4 Подсчетом Линейный
55. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 4 Подсчетом Линейный
56. повторяющиеся элементы массива А, которые есть в массиве В 4 Подсчетом Линейный
57. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 4 Подсчетом Линейный
58. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 4 Подсчетом Линейный
59. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 4 Подсчетом Линейный
60. повторяющиеся элементы массива А, которых нет в массиве В 4 Подсчетом Линейный
61. элементы, присутствующие в обоих массивах А и В 5 Пузырьком Двоичный
62. элементы, которые есть только в массиве А или только в массиве В 5 Пузырьком Двоичный
63. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 5 Пузырьком Двоичный
64. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 5 Пузырьком Двоичный
65. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 5 Пузырьком Двоичный
66. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 5 Пузырьком Двоичный
67. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 5 Пузырьком Двоичный
68. элементы массива А, повторяющиеся в массиве В несколько раз 5 Пузырьком Двоичный
69. элементы присутствующие в обоих массивах А и В в одном экземпляре 5 Пузырьком Двоичный
70. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 5 Пузырьком Двоичный
71. повторяющиеся элементы массива А, которые есть в массиве В 5 Пузырьком Двоичный
72. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 5 Пузырьком Двоичный
73. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 5 Пузырьком Двоичный
74. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 5 Пузырьком Двоичный
75. повторяющиеся элементы массива А, которых нет в массиве В 5 Пузырьком Двоичный
76. элементы, присутствующие в обоих массивах А и В 6 Выбором Двоичный
77. элементы, которые есть только в массиве А или только в массиве В 6 Выбором Двоичный
78. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 6 Выбором Двоичный
79. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 6 Выбором Двоичный
80. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 6 Выбором Двоичный
81. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 6 Выбором Двоичный
82. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 6 Выбором Двоичный
83. элементы массива А, повторяющиеся в массиве В несколько раз 6 Выбором Двоичный
84. элементы присутствующие в обоих массивах А и В в одном экземпляре 6 Выбором Двоичный
85. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 6 Выбором Двоичный
86. повторяющиеся элементы массива А, которые есть в массиве В 6 Выбором Двоичный
87. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 6 Выбором Двоичный
88. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 6 Выбором Двоичный
89. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 6 Выбором Двоичный
90. повторяющиеся элементы массива А, которых нет в массиве В 6 Выбором Двоичный
91. элементы, присутствующие в обоих массивах А и В 7 Вставками Двоичный
92. элементы, которые есть только в массиве А или только в массиве В 7 Вставками Двоичный
93. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 7 Вставками Двоичный
94. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 7 Вставками Двоичный
95. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 7 Вставками Двоичный
96. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 7 Вставками Двоичный
97. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 7 Вставками Двоичный
98. элементы массива А, повторяющиеся в массиве В несколько раз 7 Вставками Двоичный
99. элементы присутствующие в обоих массивах А и В в одном экземпляре 7 Вставками Двоичный
100. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 7 Вставками Двоичный
101. повторяющиеся элементы массива А, которые есть в массиве В 7 Вставками Двоичный
102. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 7 Вставками Двоичный
103. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 7 Вставками Двоичный
104. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 7 Вставками Двоичный
105. повторяющиеся элементы массива А, которых нет в массиве В 7 Вставками Двоичный
106. элементы, присутствующие в обоих массивах А и В 8 Подсчетом Двоичный
107. элементы, которые есть только в массиве А или только в массиве В 8 Подсчетом Двоичный
108. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 8 Подсчетом Двоичный
109. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 8 Подсчетом Двоичный
110. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 8 Подсчетом Двоичный
111. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 8 Подсчетом Двоичный
112. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 8 Подсчетом Двоичный
113. элементы массива А, повторяющиеся в массиве В несколько раз 8 Подсчетом Двоичный
114. элементы присутствующие в обоих массивах А и В в одном экземпляре 8 Подсчетом Двоичный
115. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 8 Подсчетом Двоичный
116. повторяющиеся элементы массива А, которые есть в массиве В 8 Подсчетом Двоичный
117. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 8 Подсчетом Двоичный
118. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 8 Подсчетом Двоичный
119. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 8 Подсчетом Двоичный
120. повторяющиеся элементы массива А, которых нет в массиве В 8 Подсчетом Двоичный
121. элементы, присутствующие в обоих массивах А и В 9 Слиянием Линейный
122. элементы, которые есть только в массиве А или только в массиве В 9 Слиянием Линейный
123. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 9 Слиянием Линейный
124. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 9 Слиянием Линейный
125. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 9 Слиянием Линейный
126. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 9 Слиянием Линейный
127. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 9 Слиянием Линейный
128. элементы массива А, повторяющиеся в массиве В несколько раз 9 Слиянием Линейный
129. элементы присутствующие в обоих массивах А и В в одном экземпляре 9 Слиянием Линейный
130. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 9 Слиянием Линейный
131. повторяющиеся элементы массива А, которые есть в массиве В 9 Слиянием Линейный
132. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 9 Слиянием Линейный
133. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 9 Слиянием Линейный
134. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 9 Слиянием Линейный
135. повторяющиеся элементы массива А, которых нет в массиве В 9 Слиянием Линейный
136. элементы, присутствующие в обоих массивах А и В 10 Слиянием Двоичный
137. элементы, которые есть только в массиве А или только в массиве В 10 Слиянием Двоичный
138. элементы, которые присутствуют в массиве А, но отсутствуют в массиве В 10 Слиянием Двоичный
139. элементы, которые присутствуют в обоих массивах А и В в нескольких экземплярах 10 Слиянием Двоичный
140. элементы, которые присутствуют в нескольких экземплярах в массиве А, но отсутствуют в массиве В 10 Слиянием Двоичный
141. элементы, которые присутствуют в нескольких экземплярах либо только в массиве A, либо только в массиве В 10 Слиянием Двоичный
142. элементы, которые присутствуют в нескольких экземплярах либо в массиве А, либо в массиве В (либо в обоих массивах) 10 Слиянием Двоичный
143. элементы массива А, повторяющиеся в массиве В несколько раз 10 Слиянием Двоичный
144. элементы присутствующие в обоих массивах А и В в одном экземпляре 10 Слиянием Двоичный
145. элементы, присутствующие в одном экземпляре либо только в массиве А, либо только в массиве В 10 Слиянием Двоичный
146. повторяющиеся элементы массива А, которые есть в массиве В 10 Слиянием Двоичный
147. повторяющиеся элементы массива В, которые есть в массиве А только в одном экземпляре 10 Слиянием Двоичный
148. неповторяющиеся элементы массива А, которые присутствуют в массиве В в нескольких экземплярах 10 Слиянием Двоичный
149. элементы массива А в одном экземпляре, которые присутствуют в массиве В в нескольких экземплярах 10 Слиянием Двоичный
150. повторяющиеся элементы массива А, которых нет в массиве В 10 Слиянием Двоичный

Оформление отчета

В отчет включить:

· Тема и цель работы;

· Задание на выполнение (общая часть задания и конкретный вариант индивидуального задания);

· Алгоритм программы в виде псевдокода. Части алгоритма, выполняющие сортировку исходных массивов и поиск в них, целесообразно оформить в виде подалгоритмов;

· Текст программы с комментариями;

· Результаты выполнения программы (для всех заданных размеров исходных массивов):

o Для минимального количества элементов в исходных массивах (100 элементов) – с распечаткой содержимого всех трех массивов для контроля правильности работы алгоритма;

o Для прочих вариантов количества элементов (1000 и выше) – только данные о времени выполнения программы.

· Результаты сравнения времени выполнения программы при разных размерах массивов. Для наглядности целесообразно построить график изменения времени выполнения при различных размерах массивов.

Требования к работе

1. Приведенное выше содержание отчета достаточно для выполнения задания всех уровней сложности. Для максимальных уровней сложности задания (9 и 10) описание используемого алгоритма сортировки в задании не приводится, его необходимо найти и реализовать самостоятельно.

2. Требования по каждому критерию оценки:

2.1.  Точное выполнение полученного варианта задания.

2.2. Включение в отчет всех материалов, указанных в приведенных выше требованиях к оформлению отчета. Не нужно включать в отчет пункты, специфичные для лабораторных работ 1 и 2.

2.3. Обратить внимание на аккуратность оформления псевдокода. Следите за уровнями вложенности алгоритмических конструкций и отображайте их соответствующими отступами. Разбиение псевдокода на части (выделение подалгоритмов сортировки и поиска) позволяет уменьшить вложенность и избежать лишних ошибок.

2.4. Качество алгоритма, время выполнения которого сильно зависит от размера исходных данных, зависит от наличия (или, наоборот, отсутствия) лишних операций, замедляющих его работу. Не помещайте действий, которые можно выполнить однократно, внутри циклов. Не забывайте, что разработанный алгоритм должен точно выполнять индивидуальное задание. Если возможны случаи, когда требуемый результат не может быть получен (а такие случаи возможны, особенно, если исходные данные имеют случайный характер), в алгоритме обязательно должна быть соответствующая проверка и выдача сообщения.

2.5.  Исходный текст программы должен точно соответствовать разработанному алгоритму. Если в алгоритме выделены подалгоритмы сортировки и поиска, то они могут быть реализованы в виде отдельных функций программы, что не является обязательным, но повышает ценность работы.

2.6.  Если при выполнении программы при каких-либо исходных данных могут возникнуть ситуации, приводящие к ошибке времени выполнения (например, к выходу индекса за пределы массива), необходимо это отслеживать. Отсутствие соответствующего контроля снижает надежность программы. Можно также добавить контроль корректного ввода размера массивов.

2.7. Основными конструкциями, используемыми в данной программе, являются циклы. Обращайте внимание на соответствие используемых в алгоритме и в программе видов циклов (while, do - while и for).

 



<== предыдущая лекция | следующая лекция ==>
Инициализация массива случайными числами | Пример разработки программы
Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 270 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

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

866 - | 778 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.