Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dain algoritm dina.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
442.58 Кб
Скачать
  1. Күрделілік функциясы бойынша алгоритмдерді жіктеу.

Алгоритмнің күрделілігі.

Big-O-бағалау алгоритмнің орындалу уақытының өлшемін (runtime) береді. Әдетте алгоритмнің жақсы және нашар жағдайлар үшін есептеу тиімділіктері әртүрлі , сондықтан әр нақты жағдай үшін Big-О мәні есептеледі. Егер алгоритм реті —0(1) болса, оның реті коллекциядағы элементтер санына тәуелсіз болады. Бұл алгоритм тұрақты уақыт бірлігі ішінде орындалады, мысалы егер массив соңын көрсететін индекс сақталса, массив элементіне мән меншіктеу реті 0(1) болады.

Алгоритм О(п) сызықты (linear). Оның күрделілігі тізім размеріне пропорционал. Реті log2n болатын алгоритмдер логарифмдік (logarithmic) деп аталады. Мұндай күрделілік тізімдерді бірнеше рет ішкі тізімдерге 1/2, 1/4, 1/8 етіп бөлгенде туындайды. Мысалы бинарлық бұтақтарда іздеу алгоритмдерінің күрделілігі орташа және нашар жағдайлар үшін O(log2n) болады.

Реті О(п2) болатын алгоритмдер квадраттық (quadratic) деп аталады. Шағын n үшін ғана практикада қолданылады. п екіге артқан сайын алгоритмнің орындалу уақыты 4-ке артады.

Реті О(n3) болатын алгоритмдер өте баяу орындалады, кубтық (cubic) уақытты қажет етеді. п екіге артқан сайын алгоритмнің орындалу уақыты 8 есе артады. Оның мысалына графтарға қолданылатын реті О(п3) болатын Уоршел алгоритмі жатады.

Күрделілігі О(2п) тең алгоритмде экспоненциальды күрделілік (exponential complexity) болады. Өте баяу орындалатындықтан өте аз п үшін қолданылады.

  1. Күрделілікті бағалаудың функциялары дегеніміз не?

Алгоритмнің күрделілігінің f(n) функциясының негізгі бағалауы Q бағасы. Мұндағы n - деректер көлемінің шамасы немесе кірістің ұзындығын білдіреді.

Алгоритмнің күрделілігінің негізгі бағасы f(n)= Q (g(n))

егер g > 0 , n > 0 болғанда мынандай оң с1, с2, n0, болса : с1 g(n) <= f(n) <= с2 g(n)

n > n0 болғанда мынандай с1 мен c2 табуға болады, үлкен n үшін f(n) мәні мына с1 g(n) және с2 g(n) екеуінің аралығында болады.

Бұл жағдайда g(n) функциясын f(n) функциясының асимтотикалық нақты бағасы деп атайды.

Мысалы heapsort сұрыптау әдісі үшін күрделілік бағасы f(n)= Q (nlogn) болады, яғни g(n) = nlogn.

f(n)= Q (g(n)) теңдіктен g(n) = Q (f(n)) туындайды.

Маңыздысы: Q (g(n)) функция емес, функциялардың жиыны, ол f(n)-нің өсуін тұрақты көбейткішке дейін дәлдікпен көрсетеді.

Q бағасы бір мезгілде функция өсімінің жоғары және төменгі бағаны береді. Көбінесе бұл бағаларды жеке қарастыруға тура келеді.

О бағасы алгоритм қиындығының, яғни f(n) функциясының өсуінің жоғарғы асимптотикалық бағасын береді. f(n)= О (g(n)) болады, егер

орындалса.

Басқаша айтқанда тұрақты көбейткішке дейін дәлдікпен g(n) функциясына қарағанда f(n) функциясы жылдам өспейтін функциялар класын анықтайды.

бағасы алгоритм қиындығының, яғни f(n) функциясының өсуінің төменгі асимптотикалық бағасын береді және тұрақты көбейткішке дейін дәлдікпен g(n) функциясына қарағанда f(n) функциясы баяу өспейтін функциялар класын анықтайды.

f(n)= (g(n)) болады, егер

Егер f(n)= О (g(n)) және f(n)= (g(n)) орындалса ғана, f(n)= Q (g(n)) теңдігі орындалады

Алгоритмдерді асимптотикалық талдауды практикалық та , теориялық та маңызы зор. Мысалы,элементтерді жұптап сұрыптауға негізделген

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]