5
I BOB. ALGORITMLAR HAQIDA DASTLABKI
TUSHUNCHALAR
1-§. Algoritm tushunchasi va ulardan foydalanish
Algoritm- bu aniq hisoblashlarni bajaruvchi protsedura bo‘lib
unga kirish qismida kattalik yoki kattaliklar berilib chiqishda natija-
viy kattalik yoki kattaliklar olinadi. Demak algoritm hisoblovchi qa-
damlardan tashkil topgan bo‘lib, dastlabki qiymatlarga ko‘ra
natijaviy kattaliklar qiymatini beradi.
Bu holatni sxematik tarzda
quyidagicha tasvirlash mumkin.
Algoritmni qo‘yilgan hisoblash masalani (
computational
problem) aniq bajaruvchi uskuna sifatida ham qaralishi mumkin.
Algoritmlarda keltirilgan protseduralar yordamida kattaliklar bilan
amallar bajarilib natijalar olinadi. Masalan,
biror sonlar ketma-
ketligini orta borish tartibida saralash. Saralash masalasi (
sorting
problem) ga misol keltiramiz:
Kirish: n-ta sondan iborat sonlar ketma-ketligi
(a
1
,a
2
,…,a
n
).
Chiqish: n-ta sondan iborat sonlar ketma-ketligi
(b
1
≤b
2
…≤b
n
).
Misol. (31, 41, 59, 26, 41,56) kiruvchi ketma-ketlik bo‘lsa,
chiquvchi ketma-ketlik (26, 31, 41, 41, 56, 59) bo‘lishi lozim.
Dastlabki
kattaliklar
Algoritm
Natijaviy
kattaliklar
6
Bunga o‘xshash kiruvchi ketma-ketlik saralash namunasi
(instanse)
deb yuritiladi. Agar algoritm har qanday kiruvchi qiymatlar uchun
aniq va mos chiquvchi qiymatlarni
bera olsa, u aniq (
correct) deb
yuritiladi.
1
Algorimlardan amaliyotda foydalanishga ayrim misollarni
keltiramiz:
• Odam DNK si tarkibidagi 100
ming gen identifikatsiyasi,
DNK-ni tashkil etuvchi 3 milliard asosiy juftlikni saralash va tahlili
masalasi;
• Internetda ma’lumotlar olish masalasi: katta hajmdagi
ma’lumotlarni olish, jo‘natish, qidiruv va optimal marshrut tanlash;
• Elektron tijorat masalalarida (kredit karta nomerlari, parollar,
bank hisob-kitob raqamlari himoyasi, raqamli imzo va boshqalar);
Algoritmlarni ishlab chiqishda masalani
yechimi uchun zarur
bo‘lgan vaqt va xotira hajmi muhim ko‘rsatgichlar hisoblanib
algoritmlarni yaratishda ularni samarali foydalanishni hisobga olish
zarur. Aynan bir masalani yechish uchun
turli algoritmlar tuzilishi
mumkin. Ular bir-biridan samardorlik darajasi bilan farqlanadilar.
Bu farq turli texnik va dasturiy ta’minotlarda har xil bo‘lishi
mumkin.
Misol uchun ikkita saralash algoritmlari farqini ko‘rib chiqamiz: