Съдържание:
Определение - Какво означава сложност на времето?
Времевата сложност е концепция в компютърните науки, която се занимава с количественото определяне на времето, отделено от набор от код или алгоритъм за обработка или изпълнение като функция от количеството на входа.
С други думи, сложността във времето е по същество ефективност или колко време отнема функция на програмата, за да обработи даден вход.
Техопедия обяснява сложността на времето
Времевата сложност е просто мярка за времето, необходимо за дадена функция или израз да изпълни задачата си, както и името на процеса за измерване на това време. Може да се приложи към почти всеки алгоритъм или функция, но е по-полезен за рекурсивни функции. Има малко смисъл в измерването на сложността на времето за приложения като извличане на потребителско име и парола от база данни за сравнение или просто запазване на данни, независимо дали е 20 ms или 5 ms; това би било повече в линията на времето за достъп. Това няма нищо общо с грижата за времето за изпълнение, а по-скоро разликата е незначителна. Ако обаче има рекурсивна функция, която може да бъде извикана многократно, определянето и разбирането на източника на нейната времева сложност може да помогне да се съкрати общото време за обработка от, да речем, 600 ms до 100 ms.
Времевата сложност се изразява обикновено в "голямата O нотация", но има и други обозначения. Това е математическо представяне на горната граница на коефициента на мащабиране за алгоритъм и се записва като O (Nn), като "N" е броят на входовете и "n" броят на цикличните изрази. Например имаме алгоритъма:
numbers = {5, 6, 10, 11, 2}; foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2) {
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
numbers = {5, 6, 10, 11, 2};
foreach (number as number1)
{
foreach(number as number2)
{
statements; } }
В масива "числа" има пет входа и цикълът "foreach" се повтаря два пъти. Следователно, експоненциалният растеж на времето за обработка настъпва с нарастването на броя на входовете и броя на бримките.