Алгоритмларни таҳлил қилиш зарур бўлган усулларни аниқлаш, уларни математик асосларни келтириш ва ўрганиш;
Ўрганилган таҳлил қилиш воситаларини маълумотларни саралаш ва қидириш алгоритмларининг самарадорлигини боҳолашга тадбиқ этиш;
Алгоритмлар асосида амалий дастурий таъминот яратиш ва таҳлил натижасида олинган ечимларни таққослаш;
Дастурий таъминот орқали маълумотларни саралаш ва қидириш жараёнини ўргатишни визуаллаштириш.
I. АЛГОРИТМЛАРНИ ТАҲЛИЛ ҚИЛИШ АСОСЛАРИ
Алгоритмлар таҳлили компьютерга ёки ишлатиладиган дастурлаш тилига боғлиқ эмас, шунинг учун ушбу ишда алгоритмлар псевдокодда ёзилади. Бу алгоритмларни шартли ифодалар (IF ёки CASE/SWITCH), цикллар (FOR ёки WHILE) ва рекурсия тушунчаларига эга бўлган исталган киши ўқий олади.
Бир масалани кўп алгоритмлар ечиши мумкин. Уларнинг ҳар бирининг самарадорлиги турли хил характеристикалар билан тавсифланади. Алгоритмнинг самарадорлигини таҳлил қилишдан олдин аввало ушбу алгоритм масалани тўғри ечишини исботлаш лозим. Акс ҳолда самарадорлик ҳақидаги саволларнинг ҳеч қандай аҳамияти бўлмайди. Агар алгоритм қўйилган масалани ечса, у ҳолда биз ушбу ечимнинг қанчалик самарадорлигини кўриб чиқишимиз мумкин. Ушбу боб ўзига таҳлил ва етарлича мураккаб алгоритмларни қиёслаш асосларини бириктирган.
Алгоритмнинг таҳлили жараёнида унинг бажарилиши учун керак бўлган “вақт” лар сони аниқланади. Бу ҳақиқий секундлар сони ёки бошқа вақт оралиқлари бўлмасдан, балки алгоритм томонидан бажариладиган тақрибий операциялар сонидир. Операциялар сони алгоритмнинг бажарилиш вақтини нисбий ўлчовидир. Шу сабабли арим ҳолларда “вақт” билан алгоритмнинг ҳисоблаш мураккаблигини атаймиз. Таҳлил учун алгоритмнинг компьютерда бажарилиши учун талаб қилинадиган секундлар сони яроқсиздир, бизни фақат аниқ масалани ечувчи алгоритмнинг тақрибий самарадорлиги қизиқтиради.
Аслида алгоритмнинг фактик амаллари сони у ёки бу кирувчи маълумотларда катта қизиқиш намоён қилмайди ва алгоритм ҳақида кўп нарса хабар бермайди. Бу ҳолда бизни аниқ алгоритмнинг кирувчи маълумотлар ўлчамидан боғлиқ амаллар сони қизиқтиради. Биз икки алгоритмни амаллар сони ўсиш тезлиги орқали қиёслашимиз мумкин. Айнан ўсиш тезлиги муҳим аҳамиятга эга, модомики кирувчи маълумотларнинг кичик ўлчамида А алгоритм В алгоритмга қараганда кам амаллар сонини талаб қилади, аммо кирувчи маълумотларнинг ўсиши билан бу ҳолат аксинча юз беради.
Алгоритмларнинг икки йирик синфи – бу такрорланувчи ва рекурсив алгоритмлардир. Такрорланувчи алгоритмларнинг асосини цикллар ва шартли ифодалар ташкил этади. Бундай алгоритмларни таҳлил қилиш учун цикл ичида бажариладиган амаллар сонини ва циклдаги итерациялар сонини баҳолаш талаб қилинади. Рекурсив алгоритмлар катта масалаларни қисмларга бўлади ва ҳар бир қисмга алоҳида қўлланилади. Бундай алгоритмлар айрим ҳолларда “бўлаклаш ва бошқариш” деб номланади ва уларнинг қўлланилиши жудда катта самадорликка олиб келади. Катта масалани бўлиш йўли билан ечиш жараёнида кичик оддий ва тушунарли алгоритмлар тузилади. Рекурсив алгоритмнинг таҳлили масалани қисмларга бўлиш учун, алгоритмни ҳар бир қисм учун бажарилиши ва алоҳида натижаларни масалани бутун ечими учун бирлаштиришга кетадиган амаллар сонини ҳисоблашни талаб қилади. Ушбу маълумотларни ва қисмлар сони ва уларнинг ўлчами ҳақидаги маълумотларни йиғиб биз алгоритмнинг мураккаблиги учун реккурент боғланишни келтириб чиқаришимиз мумкин. Олинган реккурент боғланишга ёпиқ шакл бериш мумкин, кейин натижани бошқа ифодалар билан таққослаш мумкин.
Биз ушбу бўлимни таҳлил нима ва у нима учун керак кабиларни тавсифлаш билан бошлаймиз. Сўнгра биз таҳлил ўтказишда кўриладиган амаллар ва параметрлар доирасини ажратамиз. Мадомики бизнинг таҳлил учун математика зарур, кейинги бўлимларда итератив ва рекурсив алгоритмлар таҳлилида қўлланиладиган муҳим математик тушунчалар ва хусусиятлар келтирилган.
Do'stlaringiz bilan baham: |