Algoritm nima?
Algoritm - jarayon yoki aniq belgilangan ko’rsatmalar to’plami sifatida qarash mumkin. Odatda algoritm biror muammolarni hal qilish yoki muayyan turdagi hisoblashlarni amalga oshirish uchun qo’laniladi.
Algoritm
Algoritm deganda, ijrochi uchun qo‘yilgan masalani yechishga qaratilgan aniq va tushunarli ko‘rsatmalarning chekli ketmaketligi tushuniladi.
Oddiyroq tushuntirganda vazifani bajarish uchun operatsiyalarni ketma-ketlikda bajarish ya’ni inson o‘z hayotiy tajribasi yoki o‘zlashtirgan bilimlariga asoslanib, ma’lum bir harakatlar, boshqacha aytganda, ko‘rsatma yoki buyruqlar ketma-ketligini bajarish orqali ko‘zlagan maqsadiga erishadi. Bunday ko‘rsatma va harakatlar ketma-ketligi algoritm so‘zi bilan ifodalanadi. Algoritmdagi har bir ko‘rsatma yoki buyruq biror amalni bajarishni ko‘zda tutadi. Algoritmdagi amallarni bajaradigan obyektni ijrochi deb atash mumkin. Har qanday algoritm amallarni belgilab beruvchi qoida bo‘lib, uning zanjiri natijasida berilgan qiymatlardan izlangan natija kelib chiqadi. Bunday amallar zanjiri algoritmik jarayon, algoritm tarkibidagi umumiy jihatga ega har bir amal esa algoritmning qadami deb ataladi. Algoritm so‘zi va tushunchasi IX asrda yashab ijod etgan buyuk alloma Abu Abdulloh Muhammad ibn Muso al-Xorazmiy (783 - 850) nomi bilan uzviy bog‘liq. Algoritm so‘zi al-Xorazmiy nomini Yevropa olimlari tomonidan buzib talaffuz qilinishidan kelib chiqqan. Al-Xorazmiy arifmetikaga bag‘ishlangan “Al-kitob al-muxtasar fi hisob al-jabr va almuqobala” nomli risolasida birinchi bo‘lib o‘nlik sanoq sistemasining prinsiplari va undagi to‘rt amalni bajarish qoidalarini asoslab bergan. Olimning “al-Xorazmiy” nomi esa “algoritm” shaklida fanda abadiy o‘rnashib qolgan.
Algoritm xususiyatlari.
- Aniqlik - har bir vaqtda algoritmning keyingi qadami uning mazkur holati bilan toʻliq aniqlanadi.
- Tushunarlilik - algoritm faqat uni bajaruvchisi uchun tushunarli buyruqlardan iborat boʻlishi shart.
- Yakunlanishi - algoritm albatta chekli qadamdan soʻng yakunlashishi lozim.
Algoritm turlari.
- Chiziqli algoritm - barcha koʻrsatmalari hech qanday shartsiz, faqat ketma-ket bajariladigan jarayonlar.
- Tarmoqlanuvchi algoritm - hisoblash jarayoni qandaydir berilgan shartning bajarilishiga qarab turli tarmoqlar boʻyicha davom ettiriladigan va hisoblash jarayonida har bir tarmoq faqat bir marta bajariladigan jarayonlar.
- Takrorlanuvchi algoritm - biron bir shart tekshirilishi yoki qandaydir parametrning har xil qiymatlari asosida algoritmda takrorlanish yuz beradigan jarayonlar.
- Aralash (kombinatsiyalashgan) algoritm — tarkibida bir necha turdagi algoritmlar qatnashgan algoritm.
Algoritmlarni tasvirlas.
Algoritmlarni turli usullarda tasvirlash mumkin. Quyida biz algoritmlarni tasvirlashning eng keng tarqalgan usullari bilan tanishib chiqamiz.
- so'z bilan ifodalash;
- formulalarda ifodalash;
- blok-sxemalarda tasvirlash;
- dastur shaklida ifodalash va boshqalar.
Algoritmlarni blok-sxema ko‘rinishda tasvirlash qulay va tushunarli bo‘lgani uchun eng ko‘p ishlatiladi. Bunda algoritmdagi har bir ko‘rsatma o‘z shakliga ega. Blok-sxemalarni tuzishda foydalaniladigan asosiy sodda geometrik figuralar quyidagilardan iborat:
Endi yuqroda ko'rsatib o'tagn blok-sxemaga misol ko'ramiz.
Misol: Uchburchak tomonlarining uzunligi bilan berilgan. Uchburchakga ichki va tashqi chizilgan aylanalar radiuslari va uzunliklari hisoblansin. Ichki chizilgan aylana radiusi r=2S/(a+b+c), tashqi chizilgan aylananing radiusi esa R=4S/abc formulalar orqali hisoblanadi. Bu yerda S – uchburchakning yuzi, a, b, c – uchburchak tomonlarining uzunliklari.
Ushbu masalaning blok-sxemasi quyidagicha bo'ladi:
Yaxshi algoritm
Algoritmlar muammoga to'g'ri va optimal samarali yechim berishi kerak. Biror muamo uchun ishlab chiqilgan algoritmlar har doim bir xil ishlashi zarur.
Yaxshi algoritm belgilari
- Kirish (muammo) va chiqish (yechim) aniq berilgan bo'lishi kerak.
- Algoritmning har bir bosqichi aniq va ravshan bo'lishi kerak.
- Algoritm muammoni hal qilishning turli usullari orasida eng samaralisi bo'lishi kerak.
- Algoritm kompyuter kodi bo'lmasligi kerak. Buning o'rniga algoritm turli dasturlash tillarida ishlatilishi mumkin bo'lgan tarzda yozilishi kerak.
Algoritmlashni o’rganish nima uchun kerak?
Har xil murakkab algoritmlarni o’rganish Dasturchi uchun kerakmi degan savol ko’pchilik yangi dasturchilarni paydo bo'ladi, buning sababi dasturlashga yangi kirgan payt ko'plab tayyor kutubxona va frameworklardan foydalanishadi natijada shuncha tayyor yechimlar bor ekanku nima qilaman o'rganib degan hayolhagam borishadi. Quyida o'rganish uchun asosli sabablarni keltirib o'tmoqchiman.
- Algoritmlar dasturlash asosi.
- Mantiqiy fikrlashni oshiradi.
- Tayyor yechimlar va Frameworklar asosini tushunish
- Yangi masalalarga yechimini topa olish