Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тиімділігі




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

Графта қысқаша жолдарды іздестіру

Кіретін деректер:

- Граф G өлше- қабырғалармен(Салмақ жайлы айтқанда қабырңанын ұзындығы деп түсінуге болады, егер геометриялық граф жайлы айтса немесе басқа да қабырғаның санды мінездемелерінде де солай түсінуге болады)

- s бастаманың шыңы (қалған барлық шыңға дейінгі қашықтықты есептейтін шың) Демалыстар: деректерлер

- dist алабы[1.. n], (dist[i] –s шыңынан i шыңына дейінгі қысқа қашықтық).

- up алабы[1..n], (up[i] –s-тен i-ге дейінгі қысқа жолдың соңынының алдындағы шың).

Дейкстраның алгоритмы

Дейкстрының алгоритмыграфқа арнайы қарсылы емес салмақты шыңдары бар есептерді дұрыс есептейді. Егер графта қарсы салмағы бар қабырға болса, бірақ қарсы суммарлы салмақпен цикл болмаған жағдайда, есеп шығу үшін Форд немесе Баллманның алгоритмін пайдалансақ болады. 1. up[1.n] алабын нөлдермен толтыру.

2.Әрбір i шыңына dist[i] кілтінің орнынаdist[i] –максималды мүмкін санды (ол графтағы қысқа жолдардың көбісінің ұзындығынан үлкен болуы қажет; есептеу барысында бұл сан азаяды және соңында s шыңынан i шыңына дейінгі қысқа жолдағы ұзындықпен алмасады).

3. Графтың шыңдарынан басымды кезек ұйымдастыру, кілттің орнына dist [ i ], i = 1, 2, …, n. аумағын алу.

4. s шыңының кілтін 0-ге ауыстыру.

5. Әлі де кезек бос емес жағдайында6 – 7 операцияларын орындау.

6. Басым кезектен r 0 элементін таңдап алу(өшіре);

7.Әрбір r0 шектес r ш 8,9 операциялапын орындау.

8. delta = dist [ r ] – (dist [ r 0] + L (r 0, r)) аумағын есептеу;

9. Егер delta > 0, онда r элементінің кілті dist [ r ] delta аумағына ке міту және up [ r ] ескірген аумағын r 0 ауыстыру;

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

Search - берілген кілтпен элементті іздестіру,

Minimum –минималды кілтпен элементті іздестіру,

Maximum –максималды кілтпен элементті іздестіру,

Predecessor –іздестіру алдыңдағы кілтпен элементті іздестіру,

Successor –келесі кілтпен элементті іздестіру,

Insert –өзінің кілт арқылы элементті енгіз,

Delete –көрсетілген элементті өшіру.

Ізденістің ағашы сөздік ретінде де, басымды кезек ретінде де пайдалануы мүмкін.

Негізгі операций орындалуының уақыты ағаштың биіктігіне пропорционал. Егер әрбір жұпты ағаштын ішкі түйіншегінің екі жұрағаты болады, сонда оның ұзындығы және негізгі операциялардыә орындалу уақыты түйінше санының логарифміне пропорционал. Керісінше, егер ағаш н түйіншектен құралған сызықты шынжырды көрсетсе, бұл уақыт до Θ(n) дейін көбейеді. Байкаусыз ізденіс жұпты ағашы бұл өзі Ο (lоg n) екені белгілі, сондықтан бұл жағдайда Θ(lоg n) негізгіі операцияларды есептеу уақыты болады.

Әрине,пайда болатын iздестiру екiлiк ағашының тәжiрибелерiнде кездейсоқтан алыс бола алады. Алайда, бiз ағаштарды теңдеуiш бойымен арнайы өлшемдер қабылданып n түйiндермен ағаштарын биiктiк болғанын кепiлдiк бере аламыз 0(log n). Тәсiлдемелердiң бiрлерн мысалды төменде қарап шығамыз. (қызыл-қара ағаштар - АВЛ, дербес жағдайда ағаштар).Сонымен бiрге мәлiметтер үшiн әсiресе ыңғайлы кез келген (дискте) рұқсаты бар екiншi жад сақталған Б-ағаштар қарастырылады. Бұл туралы:

Iздестiру екiлiк ағашының ұсынысы. Iздестiру екiлiк ағашы әрбiр түйiнiне өлшенген элемент сәйкестiкке орнатылған түбiрлiк екiлiк ағашы деп аталады. Әрбiр түйiн x үшiн келесi шартты орындайды.

X түбiрi бар сол ағаш астындағы барлық х түйiндерiнiң салмағынан аз немесе тең, онының оң жақ ағаш астындасының түйiндерiнiң салмағы артық немесе түйiн x салмағына тең.

Келесi түрдiң түйiндерiмен мұндай ағаш өкiлдiк етедi

Node = (element, key, left, right, parent)

T ағашқа рұқсат сiлтеме root көмегiмен жүзеге асырылады.

Екiлiк iздестiру ағашымен операциясы. Көрсетемiз, екiлiк iздестiру ағаштары операция Search, Minimum, Maximum, Successor және Predecessor уақытқа орындауға мүмкiндiк береді (h), ағаштың биiктiгi h.

1. (Search) iздестiру. Iздестiрудiң процедурасы k және x iздестiрудi iстелетiн ағаш астынданың түбiрiне көрсеткiш кiре берiске iзделiп отырған кiлт алады. Ол (егер болса) k немесе (егер мұндай шың жоқ жағдайда) nil кiлтпен шыңға көрсеткiштi қайтарады.

 

Procedure Search (x, k);




Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 747; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.