Расширенное тестирование укрепляет нашу уверенность в правильности программы. А как можно укрепить уверенность в правильности оценки времени выполнения алгоритма (Iog2 п )? Вот тест главного цикла программы определения времени работы (листинг 5.7).
Листинг 5.7. Определение времени работы алгоритма
while read(algnum, n, numtests) for i * [0, n) x [ 1 ] = 1 starttime = clock( ) for testnum = [0, numtests) for i = [0, n)
switch(a 1gnum)
case 1 assert(bi narysearchH i ) = =* i) case 2- assert (bi na rysearch2 (i ) ==* i) clicks = clockO - starttime print algnum, n, numtests, clicks, clicks/(le9 * CL0CKS_PER__SEC * n * numtests)
Этот код вычисляет среднее время выполнения двоичного иоиска в массиве из п различных элементов. Вначале массив инициализируется, затем производится поиск каждого элемента в массиве numtests раз. Оператор switch позволяет выбрать тестируемый алгоритм (тестовые программы всегда должны быть рассчитаны на проверку различных вариантов одного алгоритма). Оператор print выводит три входных значения и два выходных: количество «тиков» таймера (на эту величину всегда нужно обращать внимание) и среднее количество наносекунд на один поиск (ее проще интерпретировать).
Опубликовал vovan666
April 16 2013 23:58:42 ·
0 Комментариев ·
3191 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.