Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
esepter&teoria.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.77 Mб
Скачать

1. Ақпараттық іздеудің қарапайым есебі

Іздеу әдістері және іздеумен байланысты есептерді зерттеу мәселесі,зерттеулердің жеке және қызықты бағыттарының бірі. Қарапайым ақпаратты іздеу есебін қарастырайық. Мысал,университеттің мех-мат факультетінің барлық 1-ші курс студенттерінің ішінен берілген РНН1 арқылы немесе сынақ кітапшасының нөмері арқылы осы нөмірге несеае РНН-ге сәйкес студентті табу қажет болсын.Осы қойылған есеп қарпайым шешімге ие бола алады.Мысалы,қарапайым тізбектеп қарастыру әдісін қолданып,студенттер тіркелген кестеден тізбектеп барлық студенттердің РНН-нің ішінен берілген РНН-ді салыстыра тексере отырып табуға болады. Ал егер осындай іздеуге үлкен мегеполистің деректер қорынан берілген РНН-ді іздеп табу қажет болса, және іздеуді осындай қарапайым жолмен ұйымдастырсақ, онда өте көп уақыт алатыны айқын.Мұндай әдіспен шешу жолы қабылданбайды.

Сөйтіп, А массиві берілсін.Берілген А массивінің элементтерінің табиғаты кез-келген болсын. Және Р массиві берілсін, массивтің элементтерінің табиғаты сан болсын. А массивінің кез-келген ai элементіне Р массивінің элементі рі бір мәнді сәйкестікпен тағайындалсын.Оған қоса P массивтің элементтерін А массивтің элементтерінің белгісі немесе кілттері деп атайды.Формальді түрде қойылған қарапайым ақпаратты іздеу есебінің қойылымын келесідегідей тұжарымдауға болады: р*

кздейсоқ кілт берілсін.А массиві элементтерінің ішінен кілті р*-ға тең элементті табу қажет немесе А массивінің элементтері ішінен р* сәйкес кілтті элемент жоқ екені анықталу қажет .Қойылған есепті математикалық тұрғыдан теориялық жолмен шешсек,онда Р кілттер жиынында анықталған қандайда бір функция түзуді қажет етеді.Түзілген функция кілті р* сәйкес А массивінің элементінің нөмерін бір қадам ішінде қайтаруы мүмкін ,егер де ондай бар болса.

Қойылған есепті шешудің тағы бір жолы бұл комбинаторикалық жол .Бұл жолдағы айғақты процедура ретінде іздеуді тізбектеп немесе басқаша айтқанда сызықты іздеу негізінде ұйымдастырады.Тізбектеп іздеуде орташалап алғанда саны салыстыруларды қажет етеді.

-бүтін мәнді оң анықталған аргументтері натурал сан болып келетін функциялар болсын.Егер барлық үшін шарты орындалатындай оң анықталған с константасы n0 нөмірі табылатын болса,онда функциясы О-үлкен -нен деп аталады және түрінде жазылады.

Егер барлық үшін шартты орындалатындай оң анықталған с константасы n0 нөмірі табылатын болса, онда функциясы -үлкен -нен деп аталады және түрінде жазылады.

Овал 1 Овал 2 Овал 3 -бүтін мәнді оң анықталған аргументтері натурал сан болып келетін функциялар болсын.Егер барлық үшін шартын қанағаттандыратындай оң анықталған константалары және нөмері табылатын болса,онда

- нен дейді және = ( ) түрінде болады. –нотациясында 1 ғана функция, бұл жағдайда функциясы, қандай да бір n0 нөмірден бастап функциясы үшін жоғары және төменгі шегі болып табылатынын айта кету маңызды.

Компьбтерлік жүйелерде көп тараған екілік іздеу алгоритмінің салыстыру санының күрделілігінің жоғарыдан бағасы жуық.Екілік іздеу алгоритмді қолдануда берілген бастапқы массив х1 2 ,....,х п реттелген бөлу қажет.Массивтің реті мысалға, өспелі х1 х2 х п немесе кемімелі х1 х2 .... х п болу мүмкін.Бастапқы массивтің элементтер саны немесе элементтерінің мәндері уақыт айналымынан өзгеріп отыруы мүмкін,осыған орай реттеу алгоритмдерінің тиімділігі мәселесінің ролі арта түседі.

екілік іздеуді ұйымдастыратын алгоритмнің стандартты нұсқасы төменде көрсетілген.

function BinSearch(b,p* ,n);

….

begin

l:=0;

h:=n;

while l<=h do

begin

m:=(l+h)div2;

if b[m]<p*

then l:=m+1

else

if b[m]>p*

then

h:=m-1

else begin

binsearch:=m;

exit;

end;

end;

binsearch:= -1;

end;

//-1 мәнінің қайтарылуы р* -ның массивте табылмағанын көрсетеді.

2.AVL-ағаштар және толыққа жуық бинарлы ағаштар.

AVL ағаштары. Бинарлы ағаштардың бұл класы алдыңғы жағдайдағымен салыстырғандағы тұрғызу алгоритмі күрделі болғанымен маңызды позитивті қасиеттерге ие болады. Бұл типті ағаштар көзге бейсимметриялы көрінуі мүмкін, бірақ оларда ұзын бұтақтар жоқ. Мұндай ағаштың түбірінен шыққан бұтақтың максималды ұзындығы ,мұнда c аспауы тиіс. AVL ағаштарды көбіне баланстандырылған ағаштар деп атайды.

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

Егер ағаштың әрбір төбесі үшін баланстың абсолют мәні 1-ден артық болмаса, онда ағашты баланстандырылған (AVL) ағаш д.а.

n элементтен тұратын массив бойынша тұрғызылған AVL ағаштағы ең ұзын бұтақтың ұзындығын бағалайық. Бұл үшін санын белгілейміз, алдымен максималь ұзындығы l-ға тең бұтақтары бар AVL ағаштар жиынын қарастырамыз. Осы ағаштардың ішінде төбелер саны минимум болатындары да бар. Ары қарай бұл AVL ағаштарын минималды деп атаймыз.

Енді мына функцияны қарастырайық.

n(l)-AVL ағашындағы төбелердің минималь саны, бұтақтарының максималь ұзындығы тең.

l=0,1,2,3,4 және 6 үшін минималь AVL ағаштарының мысалын келтірейік.

Блок-схема: узел 11

2.5.сурет: a) n(0)=1, l=0 б) n(1)=2, l=1 в) n(2)=4,l=2 г) n(3)=7,l=3

2.6.сурет n(4)=12,l=4

………………?

………………?

2.7.сурет n(5)=20,l=5

Сәйкесінше AVL ағашына элемент қосуға жұмсалатын уақыт жаман жағдайда тең. Келтірілген баға басқа түсініктерден шығады, атап айтсақ Фибоначчи санын бағалауы белгілі.

AVL ағашында іздеу үшін орташа жағдай тартымды көрінеді,оның бағалау түрі мынадай

,

мұндағы

яғни ,минималды мүмкіндіктен бар болғаны 4% нашар.

Толыққа жуық бинарлы ағаш/. Бинарлы ағаштың өсу нүктесі деп вакантты бағыт б/ша жаңа қабырға тұрғызуға болатын төбені айтады.

2.1.сурет 2.2.сурет

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

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

яғни, толықтау ағаш үшін іздеу eceбi оптималды-минималды уақытта шешіледі, яғни салыстыру саны минимадды болады. Толықтау ағаш тұрғызу алгоритмi курделі емес, бipaқ бұл ағаштардың айтарлықтай кемшіліетері бар. Егер массив статикалы болса, яғни элементтер саны да, элементің өзi де өзгермесе, онда толықтау ағашты іздеуге қолдану негізді болып табылады. Мұндай ағашты ұйымдастыруға бip рет уақыт жұмсаса, ары қарай тек іздеу eceбi ғана жүргізледі және ал тиімді болады. Егер массивтің элементтері периодты турде өзгерсе немесе қосылса н/е алынатын болса, онда бұл басқа бip мәселе.

Дәстүрлі түрде 6 элементтен тұратын массивті және оның толықтау ағашын қарастырайық.

2.3.сурет 2.4.сурет

бip ғана «2» элементін қосу ағашты қайта құруды к/к етеді, бұл кезде массивтің тек бip элементі ғана өз орнында қалды (4 сурет).

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

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