Базовий курс програмування на С++. Визначення швидкодії (часу виконання) програми |
Написав Joker | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вівторок, 24 травня 2016 22:39 Переглядів: 6092
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- 4хвилини за чашку кави!? Вчора це коштувало 3! - Вам потрібна кава чи спогади? © фільм «Time»
Під час спортивного програмування одним із дуже важливих чинників є час роботи програми, її швидкодія. Це важливо і у інших випадках. Якщо ваша програма повільна чи працює не раціонально, то її корисність різко падає. Якщо уявити, що ми навчимо якусь мавпу писати літери німецького алфавіту і ця мавпа буде вічно жити і весь час писати (вона буде забезпечена папером). То таким чином, колись у майбутньому вона може слово в слово переписати роман Е.М. Ремарка «Тріумфальна арка». Це ж по-суті теж можна вважати хорошим результатом. Мавпа виконала свою роботу, сама не знаючи цього. Але витрачений час повністю знецінює результат. Це звісно дещо перебільшений приклад, але проблема така ж. Отже, все повинно бути швидко. У спортивному програмуванні використовують таке поняття як «обчислювальна складність». Але спершу варто вміти просто визначати скільки часу працює програма. Для цього знадобиться секундомір. Все як у житті. Візьмемо спортсмена, який повинен пробігти одне коло навколо стадіону. Після команди «СТАРТ» вмикаємо секундомір і коли він перетне фінішну пряму ми зупиняємо відлік часу. Тепер за роботу! Потрібно підключити бібліотеку #include <ctime> І використати функцію clock(), яка не приймає параметрів. сlock() повертає час процесора на опрацювання програми. Але число представлене у часових тіках. Щоб перейти до секунд треба до програми додати закоментований рядок. Це і все. Таким чином можна визначати і час роботи не цілої, а лише фрагмента коду. Для цього потрібно використати ф-цію clock двічі. На початку того фрагменту, час якого потрібно підрахувати і у кінці. Віднявши від кінцевої функцію початкову ми отримаємо різницю, яка дорівнює часу виконання фрагмента. Ось приклад такої програми: P.S. Якщо вам цікаво дізнатися про обчислювальну складність, то відпишіть будь ласка у коментарях і я продовжу статтю. Дякую за увагу. ( 18 Проголосувало ) Новіші матеріали:
Старіші матеріали:
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |