Algoritm Xususiyatlari



Download 16,41 Kb.
Sana28.04.2023
Hajmi16,41 Kb.
#932890
Bog'liq
AlgoritmlarniBaholashMaqola

Algoritm
Algoritm, belgilangan qo'llanma yoki tartibga ko'ra amalga oshiriladigan muammolarni hal qilish usuli hisoblanadi. Bu qo'llanmalar matematika, fizika, dasturlash, kriptografiya, shifrlash va boshqa sohalarda ishlatiladi.


Algoritm, bir necha qadamdan iborat bo'lib, har qadamda ma'lum bir ish bajarilishi kerakligini aniqlaydi va birinchi qadamdan oxirgi qadimgacha natija chiqarish usullarini ko'rsatadi. Algoritmlar odatda Turing to'g'risida fikrlashda qo'llanadi. Bu Turing-kompleks algoritmlar, avtomatik tarzda kompyuter dasturlariga aylantirilishi mumkin bo'lgan barcha muammolarni hal qilish uchun ishlatiladi.


Algoritmlar, boshqacha so'zlar bilan aytganda, shunchaki har qanday amalning o'zgarishi bo'lgan bir nechta qadamlar jadvalidir. Bu qadamlar, masalalarni aniqlash, aniqlangan masalalarni tahlil qilish va natijalarni chiqarishdan iborat bo'lishi mumkin.


Bir algoritmning bajarilishi kerak bo'lgan vazifalarga misol sifatida, foydalanuvchilarning kompyuterda bitta vaqtning o'zida bajarishi kerak bo'lgan o'yinlar, raqamli simulatsiyalar, bank hisobvarag'iga o'tkazishlar va kabi muammolarni bajarish mumkin. Algoritmlar, shuningdek, shifrlash va kriptografiya sohalarida xavfsizlikni ta'minlash uchun ham ishlatiladi.


Algoritm tuzish, dastur tuzishning katta bir qismini tashkil qiladi. Bunday qo'llanmalar dastur tuzilishida amalga oshirilgan aniqlangan protsedurani shakllantir


Algoritm Xususiyatlari

  • Determinizm. Shu algoritm tomonidan amalga shu boshlang'ich ma'lumotlarni o'rnatayotgan boshlanadi qayta-qayta shu signal beruvchi.

  • Mass. algoritm har qanday bir vazifani, balki ma'lum bir turdagi juda ko'p vazifalar tomonidan qaror bo'lmasa.

  • Samaradorligi. Har qanday holda ham algoritm bilan muammoni hal qilish uchun keladi.

  • Diskret. algoritm har qanday qiyinchilik vakili emas amalga oshirish bo'lgan qadamlarni o'z ichiga oladi.

  • Terminatori. algoritm tartibi cheklanmagan yoki cheksiz bo'lishi mumkin emas.

  • To'g'ri. algoritm ma'lum bir vazifani bajarish uchun tashkil qilingan bo'lsa, u har doim natija olib berishi kerak.

Algoritm nima uchun kerak-Algoritm bu ishni bajarish uchun ishlatiladigan juda foydali vosita. Hisoblashda eng yaxshi algoritmni tanlash kompyuterning berilgan topshiriqni eng yaxshi tarzda bajarishini ta'minlaydi.


Shuning uchun u kompyuter dasturini mavjud resurslar bilan optimallashtirishga xizmat qiladi. Boshqacha qilib aytganda, muammoni eng yaxshi algoritmlar yordamida hal qilishga qaror qilganingizda, dastur tezligi va xotirani kam sarflashni eng yaxshi kombinatsiyasini xohlaysiz.


O'rganilishi mumkin bo'lgan turli xil algoritmlar ular echadigan masalalar kabi xilma-xildir. Ammo, ehtimol siz hal qilmoqchi bo'lgan muammoning ba'zi jihatlari bilan boshqa muammoga o'xshashligi ehtimoldan yiroq emas.


Algoritmlarning keng doirasini tushunib, muammo uchun eng maqbulini tanlashingiz va uni to'g'ri qo'llashingiz mumkin.


Algoritmlarni baholash


Algoritmalar boshqa bir mezon, ma'lumotlar va murakkablik darajasi ko'rsatilmagan holda baholanilishi mumkin emas. Algoritmni baholanishiga olib keladigan bir nechta mezonlar quyidagilar bo'lishi mumkin:


Vaqtni baholash: Algoritmlar har doim ishni bir nechta yulduz bilan baholashadi. Yani, algoritmdagi operatsiyalar vaqtni qancha sifatli bajaradi va o'z ichiga qancha murakkablikka ega ekanligini ko'rsatadi.


Xotira joyi: Algoritmlar yod-siz joyni qancha ishlatadi yoki qancha xotiradan foydalanadi ham baholanadi. Xotira ko'payganida algoritmni ishga tushirish uchun kamchiliklar yuzaga kelishi mumkin.


Ishonchli holat: Algoritmlarning qancha ishonchli ekanligi ham baholanilishi mumkin. Bu, algoritmda yolg'on yoki xatoliklar bo'lishi mumkinligini, shuningdek, muhim ma'lumotlarni qondirish xususiyatlarini o'z ichiga oladi.


Murakkablik darajasi: Algoritmlar murakkablik darajasiga ko'ra baholashadi. Murakkablik darajasi algoritmdagi operatsiyalar va ma'lumotlar soni va turi boyicha o'zgaradi. Murakkablik ko'payganida, algoritmning ishlashi vaqtni ko'proq olishi mumkin.


Odatdagi maqsadlar: Algoritmlarning ishga tushirilishi uchun kerakli maqsadlar ham baholanilishi mumkin. Algoritmlar yordamida muammolarni hal qilish uchun murakkablik darajasi, vaqtni va xotira joyini taqiqlash mumkin.


Bulardan eng asosiylari vaqt va xotira bo’yicha baholashdir. Kenling endi sizlar bilan bir masala ustida organgan bilimlarimizni silab ko’ramiz!!!





  1. Misol

Siz darvozaga chiqish uchun o'rnamoqda ekansiz. Darvozaga yetishish uchun n qadam kerak.

Har safar, siz faqat 1 yoki 2 qadam bosishingiz mumkin. Darvozaga qancha xil usullarda yetishingiz mumkin?


Misol uchun


Kiruvchi: n = 3
Chiquvchi: 3
Tafsilot: Darvozaga chiqish uchun uch xil usul mavjud:



  1. 1 qadam + 1 qadam + 1 qadam

2. 1 qadam + 2 qadam
3. 2 qadam + 1 qadam

Misol leetcode.com saytidagi quyidagi misol shartidan olindi misol


Eng sodda yechi:




 public int ClimbStairs(int n) {
if (n <= 1) {
return 1;
}
return ClimbStairs(n-1) + ClimbStairs(n-2);
}
Bu algoritmning vaqt complexity (vaqt sarflanishi) Fibonacci sonlarining yechimida xos kuchli darajali rekursiv algoritmlarga ega bo'lib, vaqt complexity O(2^n) ga yaqin bo'ladi. Bu, n-ning kattaligi oshganida yechimning hisoblanish vaqtini tez-tez ko'paytiradi va bu holda algoritm ishlashining tezligi katta miqdorda qo'shimcha vaqtni sarflaydi.

Algoritmda optimallashtirishlar amalga oshirilishi mumkin. Masalan, rekursiv algoritmdan foydalangan holda yozilgan dasturlar yozilishi mumkin. Bundan tashqari, daraja vaqt complexity ni kamaytiruvchi algoritmlar mavjud, masalan, dinamik dasturlashga asoslangan yechimlar.


Bundan tashqari, foydalanuvchining kiritgan n qiymati katta bo'lishi mumkinligi sababli, hafizaning ham sarflanishiga e'tibor berish kerak. Yuqorida keltirilgan rekursiv yechimning hafizaning sarflanishi ham O(n) ga yaqin bo'lishi mumkin, shuningdek, dinamik dasturlashga asoslangan yechimlarda hafizaning sarflanishi ham O(n) ga yaqin bo'lishi mumkin


Keling endi yechimimizni yaxshilaymiz:

Yuqoridagi yechoim reecursiv yechim edi




public static int ClimbStairs(int n) {
 public static int ClimbStairs(int n) {
if (n <= 1) {
return 1;
}
int[] memo = new int[n + 1];
memo[0] = 1;
memo[1] = 1;
for (int i = 2; i <= n; i++) {
memo[i] = memo[i - 1] + memo[i - 2];
}
return memo[n];
}
Download 16,41 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish