Inhoudsopgave:
Definitie - Wat betekent tijdcomplexiteit?
Tijdcomplexiteit is een concept in de informatica dat zich bezighoudt met de kwantificering van de hoeveelheid tijd die een set code of algoritme nodig heeft om te verwerken of te draaien als functie van de hoeveelheid invoer.
Met andere woorden, tijdcomplexiteit is in wezen efficiëntie, of hoe lang een programmafunctie nodig heeft om een gegeven invoer te verwerken.
Techopedia verklaart Time Complexity
Tijdcomplexiteit is gewoon een maat voor de tijd die een functie of uitdrukking nodig heeft om zijn taak te voltooien, evenals de naam van het proces om die tijd te meten. Het kan worden toegepast op vrijwel elk algoritme of functie, maar is nuttiger voor recursieve functies. Het heeft weinig zin om tijdcomplexiteit te meten voor toepassingen zoals het ophalen van de gebruikersnaam en het wachtwoord uit een database voor vergelijking of het eenvoudig opslaan van gegevens, of het nu 20 ms of 5 ms is; dat zou meer in de lijn van toegangstijd liggen. Het heeft niets te maken met zorgen over de uitvoeringstijd, maar eerder dat het verschil te verwaarlozen is. Als er echter een recursieve functie is die meerdere keren kan worden aangeroepen, kan het bepalen en begrijpen van de bron van de tijdcomplexiteit de totale verwerkingstijd verkorten van bijvoorbeeld 600 ms tot 100 ms.
Tijdcomplexiteit wordt typisch uitgedrukt in de "grote O-notatie", maar er zijn andere notaties. Dit is een wiskundige weergave van de bovengrens van de schaalfactor voor een algoritme en wordt geschreven als O (Nn), waarbij "N" het aantal ingangen is en "n" het aantal lusuitdrukkingen is. We hebben bijvoorbeeld het algoritme:
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; } }
Er zijn vijf ingangen in de array "numbers" en de lus "foreach" wordt tweemaal herhaald. Daarom treedt exponentiële groei in verwerkingstijd op naarmate het aantal ingangen en het aantal lussen groeit.
