Lineaire tijd

In de complexiteitstheorie kan een algoritme in lineaire tijd of O(n) uitgevoerd worden als de benodigde tijd lineair afhangt van de grootte van de invoer. Voorbeelden hiervan zijn het optellen van een lijst gehele getallen, het opzoeken van een letter in een string of het uitvoeren van een bewerking in constante tijd op alle knopen in een boomstructuur. Bij het tweede voorbeeld is het niet noodzakelijk dat de gehele invoer wordt doorlopen want als de letter aan het begin van de string staat dan is het algoritme eerder klaar - dit is toegestaan volgens de definitie van O(n) aangezien de tijd van het algoritme begrensd wordt door een lineaire functie. De andere twee voorbeelden vereisen dat de gehele invoer wordt doorlopen, deze zijn naast O(n) ook Ω(n) en daarmee dus Θ(n) - zie complexiteitsgraad voor de definities van deze notaties en een toelichting.

Elk probleem waarbij de gehele invoer nodig is om het antwoord te berekenen vereist ten minste lineaire tijd aangezien het doorlopen van de invoer in lineaire tijd verloopt.

Een ander voorbeeld van een O(n) algoritme is lineair zoeken, een zoekalgoritme dat mogelijk elk element in een lineaire datastructuur (meestal een lijst) bekijkt. Hier is n het aantal elementen in de datastructuur. De tijd die nodig is om een bepaald element te vinden hangt lineair af van n wat de naam lineair zoeken verklaart.

Zie ook

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.