Algoritmer O-notation
Hej.Jeg sidder pt. og læser om algoritmer, herunder O-notation.
Så vidt jeg har forstået, så kan O-notation anvendes til at beskrive udførselstiden for algoritmer.
Eksempelvis at O(N) beskriver en algoritme med en udførselstid der vokser lineært med størrelsen af det input man giver algoritmen.
Og at O(N^2) beskriver en algoritme med en udførselstid der er proportional med kvadratet på størrelsen af det input man giver.
Under min læsning er jeg stødt på nogle eksempler, hvor der eksempelvis står følgende:
n = O(n^2)
1 / n = O(1)
5n^7 = O(2^n)
13 log n = O(square root(n))
n(log n)^2 = O(n^2)
3n^2 + 7n = O(2n^2 + n)
Og selvom disse umiddelbart ser simple ud, så kan jeg simpelthen ikke forstå dem, selvom jeg har prøvet at læse rundt omkring.
Hvad er n i overstående? Er det input? Er der en venlig person som vil prøve at beskrive hvorfor de overstående ligninger er som de er og hvorfor de skulle gælde?
Generel information om algoritmer, O-notation og lignende beskrevet på en yderst letforståelig måde ville jeg virkelig være taknemmelig for!
Tak på forhånd