If you're seeing this message, it means we're having trouble loading external resources on our website.

თუ ვებფილტრს იყენებთ, დარწმუნდით, რომ *.kastatic.org და *.kasandbox.org დომენები არ არის დაბლოკილი.

ძირითადი მასალა

ფუნქციები ასიმპტოტურ ჩანაწერში

როდესაც ალგორითმის მუშაობის დროის ზრდის ტემპს შემომავალი მონაცემის ზომა n-ის მიხედვით გამოვსახავთ და ამისათვის ასიმპტოტურ ნოტაციას ვიყენებთ, კარგი იქნება, თუ რაღაცებს გავითვალისწინებთ.
Let's start with something easy. Suppose that an algorithm took a constant amount of time, regardless of the input size. For example, if you were given an array that is already sorted into increasing order and you had to find the minimum element, it would take constant time, since the minimum element must be at index 0. Since we like to use a function of n in asymptotic notation, you could say that this algorithm runs in \Theta, left parenthesis, n, start superscript, 0, end superscript, right parenthesis time. რატომ? Because n, start superscript, 0, end superscript, equals, 1, and the algorithm's running time is within some constant factor of 1. In practice, we don't write \Theta, left parenthesis, n, start superscript, 0, end superscript, right parenthesis, however; we write \Theta, left parenthesis, 1, right parenthesis.
ახლა წარმოიდგინეთ, რომ ალგორითმს დასჭირდა \Theta, left parenthesis, log, start base, 10, end base, n, right parenthesis დრო. აგრეთვე შეგიძლიათ, თქვათ, რომ მას დასჭირდა \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis დრო. როდესაც ლოგარითმის ფუძე არის მუდმივი, მნიშვნელობა არა აქვს, რა ფუძეს გამოვიყენებთ ასიმპტოტურ ნოტაციაში. რატომ? რადგან არსებობს მათემატიკური ფორმულა, რომელიც ამბობს
log, start base, a, end base, n, equals, start fraction, log, start base, b, end base, n, divided by, log, start base, b, end base, a, end fraction
ყველა დადებითი რიცხვისთვის a, b და n. ასე რომ, თუ a და b ორივე მუდმივაა, მაშინ log, start base, a, end base, n და log, start base, b, end base, n განსხვავდება მხოლოდ log, start base, b, end base, a-თი და ეს მუდმივი მამრავლია, რომლის უგულებელყოფაც შეგვიძლია ასიმპტოტურ ნოტაციაში.
მაშასადამე, შეგვიძლია, ვთქვათ, რომ ორობითი ძებნის ყველაზე უარესი სამუშაო დრო არის \Theta, left parenthesis, log, start base, a, end base, n, right parenthesis ნებისმიერი დადებითი მუდმივა a-სთვის. რატომ? ვარაუდების რაოდენობა არის მაქსიმუმ log, start base, 2, end base, n, plus, 1, თითოეული ვარაუდის გენერაცია და შემოწმება საჭიროებს მუდმივ დროს, შექმნა და დაბრუნება საჭიროებს მუდმივ დროს. თუმცა, პრაქტიკაში ხშირად ვწერთ, რომ ორობით ძებნას ესაჭიროება \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis, რადგან კომპიუტერულ მეცნიერებს უყვართ 2-ის ხარისხებში ფიქრი.
როცა ალგორითმებს ასიმპტოტურად ვაანალიზებთ, უნდა ვიცოდეთ ხშირად შემხვედრ ფუნქციებზე არსებული წესები. თუ a და b მუდმივებია და a, is less than, b, მაშინ \Theta, left parenthesis, n, start superscript, a, end superscript, right parenthesis-ს სამუშაო დრო იზრდება უფრო ნელა, ვიდრე \Theta, left parenthesis, n, start superscript, b, end superscript, right parenthesis-ს სამუშაო დრო. მაგალითად, \Theta, left parenthesis, n, right parenthesis-ის სამუშაო დრო, რომელიც არის \Theta, left parenthesis, n, start superscript, 1, end superscript, right parenthesis, იზრდება უფრო ნელა, ვიდრე \Theta, left parenthesis, n, squared, right parenthesis-ს სამუშაო დრო. არ არის აუცილებელი, რომ ხარისხის მაჩვენებლები იყვნენ მთელი რიცხვები. მაგალითად, \Theta, left parenthesis, n, squared, right parenthesis-ს მუშაობის დრო იზრდება უფრო ნელა, ვიდრე \Theta, left parenthesis, n, squared, square root of, n, end square root, right parenthesis-ს მუშაობის დრო, რომელიც არის \Theta, left parenthesis, n, start superscript, 2, point, 5, end superscript, right parenthesis.
შემდეგი გრაფი ადარებს n-ის,n, squared-ისა და n, start superscript, 2, point, 5, end superscript-ის ზრდას:
გრაფიკი, რომელზეც შედარებულია n, n კვადრატი და n ხარისხად 2.5
ლოგარითმები უფრო ნელა იზრდებიან, ვიდრე მრავალწევრები. ანუ, \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis იზრდება უფრო ნელა, ვიდრე \Theta, left parenthesis, n, start superscript, a, end superscript, right parenthesis ნებისმიერი დადებითი მუდმივი a-სთვის. მაგრამ, ვინაიდან log, start base, 2, end base, n-ის მნიშვნელობა იზრდება n-ის ზრდასთან ერთად, \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis იზრდება უფრო სწრაფად, ვიდრე \Theta, left parenthesis, 1, right parenthesis.
შემდეგი გრაფი ადარებს 1-ის, n-ისა და log, start base, 2, end base, n:-ის ზრდას:
გრაფი, რომელიც ადარებს 1-ს, 2-ის ფუძის ლოგარითმს n-იდან და n-ს
აი, ფუნქციების ჩამონათვალი (ასიმპტოტურ ნოტაციაში), რომელთაც ხშირად ვხვდებით ალგორითმების ანალიზის დროს. დალაგებულია ყველაზე ნელიდან ყველაზე სწრაფამდე ზრდადობით.
  1. \Theta, left parenthesis, 1, right parenthesis
  2. \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis
  3. \Theta, left parenthesis, n, right parenthesis
  4. \Theta, left parenthesis, n, log, start base, 2, end base, n, right parenthesis
  5. \Theta, left parenthesis, n, squared, right parenthesis
  6. \Theta, left parenthesis, n, squared, log, start base, 2, end base, n, right parenthesis
  7. \Theta, left parenthesis, n, cubed, right parenthesis
  8. \Theta, left parenthesis, 2, start superscript, n, end superscript, right parenthesis
  9. \Theta, left parenthesis, n, !, right parenthesis
აღვნიშნოთ, რომ მაჩვენებლიანი ფუნქცია a, start superscript, n, end superscript, სადაც a, is greater than, 1, იზრდება უფრო სწრაფად, ვიდრე მრავალწევრა ფუნქცია n, start superscript, b, end superscript, სადაც b არის ნებისმიერი მუდმივა.
ზემოთ მოცემული სია ყველაფერს არ მოიცავს. არსებობს ბევრი ფუნქცია, რომელთა მუშაობის დროებიც არ არის ზემოთ ჩამოთვლილი. იმედია, კომპიუტერული მეცნიერების შესწავლისას მათაც გადაეყრებით.

ამ მასალის შინაარსი შექმნილია დარტმუთის კომპიუტერული მეცნიერების პროფესორების, თომას კორმენისა და დევინ ბალკომის, ასევე ხანის აკადემიის კომპიუტრეული ჯგუფის მიერ. მასალის ლიცენზიაა CC-BY-NC-SA.

გსურთ, შეუერთდეთ დისკუსიას?

პოსტები ჯერ არ არის.
გესმით ინგლისური? დააწკაპუნეთ აქ და გაეცანით განხილვას ხანის აკადემიის ინგლისურენოვან გვერდზე.