Нимани ҳисоблаш ва нимани инобатга олиш лозим
Нимани ҳисоблаш масаласи иккита қадамдан иборат. Биринчи қадамда аҳамиятли жараён ёки жараёнлар гуруҳи танланади, иккинчи қадамда шу жараёнлардан қай бири алгоритмда жойлашган, қайсилари эса қўшимча ҳаражатларни ёки маълумотларни қайд эти шва ҳисобга олишга кетиши ташкил этади. Икки хил аҳамиятли жараён тури мавжуд: таққослаш ва арифметик амаллар. Барча таққослаш операторлари эквивалент ҳисобланади ва уларни излаш ҳамда ажратув алгоритмларида инобатга олинади. Таққослаш миқдори бундай алгоритмларнинг муҳим элементи ҳисобланади, излашда ушбу миқдор изланган катталик билан мос тушадими, саралашда эса берилган оралиқдан чиқиши аниқланади. Солиштирувчи операторлар бир катталикнинг иккинчиси билан тенг ёки тенг эмаслиги, катта ёки кичиклиги, кичик ёки тенглиги, катта ёки тенглигини текширади.
Биз арифметик амалларни икки гуруҳга бўламиз: аддитив ва мультипликатив. Аддитив операторлар (қисқа қилиб айтганда қўшув) қўшиш, айириш, орттириш ва қисқартиришни ўз ичига олади. Мультипликатив операторлар (ёки қисқача кўпайтиришлар) кўпайтириш, бўлиш ва модул бўйича қолдиқ олишни ўз ичига олади. Икки гуруҳга ажратиш кўпайтиришнинг қўшишдан кўпроқ ишлатилишига боғлиқ. Амалиётда баъзи алгоритмлар уларда кўпайтириш кам бўлса, қўшишлар сони пропорционал даражада ўсса ҳам афзалроқ ҳисобланади. Биз ўз китобимизда яна бир, кўпайтиришдан ҳам кўп вақт талаб қилувчи амаллар гуруҳини ҳосил қилувчи логарифмлар ва тригонаметрик функциялардан фойдаланувчи алгоритмларга тўхталмадик (одатда компьютерлар бу ифодаларни бир қаторга ажратиш ёрдамида ҳисоблайдилар). Бутун сонли икки даражага кўпайтириш ёки бўлиш алоҳида ҳолатни ташкил қилади. Бу жараён силжишга олиб келади, кейингиси эса тезлик жиҳатдан қўшишнинг эквиваленти ҳисобланади. Бироқ, бу тафовут сезиларли бўлган ҳоллар жуда кам, чунки 2 га кўпайтириш ва бўлиш биринчи навбатда таққослаш операторлари аҳамиятга эга бўлган «тақсимла ва бошқар» сингари алгоритмларда учрайди.
Кирувчи маълумотларнинг синфлари
Алгоритмни таҳлил қилишда кирувчи маълумотларни танлаш унинг бажарилишига таъсир қилиши мумкин. Айтайлик, баъзи саралаш алгоритмлари, агар кириш рўйхати сараланган бўлса, жуда тез ишлаши мумкин, бошқа алгоритмлар шундай рўйхатда унча катта бўлмаган натижани кўрсатади. Тасодифий рўйхатда эса натижа бунинг тескариси бўлиши мумкин. Шунинг учун биз маълумотларнинг бир кириш рўйхатидаги алгоритмлар ҳаракатини таҳлил қилиш билан чегараланмаймиз. Биз алгоритмни ҳам энг тез, ҳам энг секин ишлашини таъминловчи маълумотларни қидирамиз. Бундан ташқари, биз барча мавжуд маълумотлар тўпламидаги алгоритмларнинг ўртача самарасини ҳам баҳолаймиз.
Do'stlaringiz bilan baham: |