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

Программа орындау барысында ең қиын жұмыстардың бірі процедураны шақыру және циклдарды орындау болып табылады.

Егер бір процедура басқасын шақырса, соңғысының қиындығын дұрыс бағалау қажет.

Егер Fast ішкі процедураларында Slow процедурасы шақырылса, онда процедура қиындығы көбейтіледі. Осы кездегі алгоритм қиынды,ы O(N^2 )*O(N^3 )=O(N^5).

Егер денегізгі программа процедураларды кезекпен шақырса, онда олардығ қиындығы қосылады: O(N^2 )+O(N^3 )=O(N^3).

Қиындықты бағалаудың функциялары. Қазір бірнеше қиындықты анықтайтын функцияны қарастырайық. Функциялар қиындығы өсу реті бойынша орналасқан. Жоғары болған сайын орындалу бағасы тез болады:

1. C – константа

2. log(log(N))

3. log(N)

4. N^C, 0<C<1

5. N

6. N*log(N)

7. N^C, C>1

8. C^N, C>1

9 N!

Негізінен N*log(N) қиындығы бар алгоритм жақсы жылдамдықпен жұмыс жасайды. N^C қиындығы бар алгоритмді С мәні қатты үлкен болмаған жағдайда орындауға болады. C^N және N! Қатарлы Функциясы бар алгоритмді орындағанда қиындығы үлкен болуы мүмкін.

  1. Алгоритм талдауындағы белгілеу жүйесі. Белгілеулерге анықтама бер.

Алгоритмдерді талдау алгоритмнің орындалуына қажетті ресурсарды анықтаудан тұрады. Кейде төмендегідей ресурстардың қажеттілігі бағаланады: жад, желінің өткізу қабілеті немесе қажетті аппараттық қамтама, бірақ көбінесе есептеу уақыты анықталады. Бір есепті шешудің бірнеше алгоритмдерін талдау арқылы ең тиімдісін таңдау оңай.

Алгоритмдерді жасау(разработка)

Алгоритмдерді жасаудың көптеген әдістері бар. Орналастыру(вставка) әдісімен жұмыс істейтін алгоритмде инкрементті тәсіл қолданылады: A[1..j-1] сұрыпталған ішкі массиві бар болған жағдайда кезекті A[j] элементін тұру керек орнына қоямыз, нәтижесінде сұрыпталған A[1..j] ішкі массивін аламыз.

Бұл жолы бөлу( “бөліп ал да басқар”) әдісі ретінде белгілі алгоритмдерді жасау тәсілін қарастырамыз.

  1. Алгоритм тиімділігі дегеніміз не?

Алгоритм қандай да бір машинада командалардың жинағы түрінде орындалады. Бір есепті орындауға арналған екі немесе бірнеше алгоритмдердің орындалу жылдамдығын салыстыру үшін қолданылатын критерий (өлшем) жүйелік тиімділік деп аталады. Бір компьютерде бірдей деректер жинағымен бұл алгоритмдерді орындату арқылы олардың орындалуына кеткен салыстырмалы уақытты анықтауға болады.Ол үшін ішкі жүйелік сағат қолданылады.

Ішкі жүйелік сағатты қолданып уақытты бағалау бұл бір ғана есептің орындалуына арналған алгоритмдердің әрқайсысының жүйелік тиімділігінің өлшемі болады.

Кейбір алгоритмдердің орындалуында жадқа қойылған шектеулер проблема тудырады. Орындалу барысында ұзақ уақыт сақтау үшін бастапқы көлемді қысу қажет болады. Қандай да бір алгоритм пайдаланатын ішкі жадтың салыстырмалы санының өлшемі — бұл кеңістіктің тиімділігі (space efficiency). Бұл критерий алгоритмді қандай типті компьютер орындай алатынын және алгоритмнің толық жүйелік тиімділігін көрсетеді. Жаңа компьютерлік жүйелердің жадтарының көлемінің ұлғаюна байланысты бұл критерий маңызды болмай қалды.

Үшінші тиімділік критерийі — бұл есептеу тиімділігі (computational efficiency), ол алгоритмнің ішкі құрылымын қарастырады, оның жасалуын және алгоритмде қолданылатын итерациялар мен меншіктеу операторларын салыстыратын тесттердің санын да талдайды. Бұл өлшем типі нақты компьютерге тәуелсіз және бұл критерий алгоритмнің есептелу күрделілігін n-ге, яғни коллекциядағы деректер элементеріне қатысты өлшейді.

Тізімдер мен бұтақтар сияқты коллекциялардың жалпы кластарының деректерін өңдеу үшін алгоритмнің тиімділігінің өлшемі ретінде салыстыру қолданылады.

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