Algoritmni loyihalashtirish va tahlil qilish jarayoni
Masalani tushunish
Tanlash:hisoblash vositalari,aniq yoki yaqinlashtirilgan yechim,ma’lumotlar tuzilmalari,algoritmni loyihalashtirish uslublari
To’g’rilikni baholash
Algoritmning ishlatilishi
Samaradorligi Algoritmlarni tahlil qilishning asosiy vazifasi kirish ma'lumotlari hajmining oshib borishi bilan resurslarga bo'lgan talabni (vaqt va xotira xarajatlari) o'lchash usullarini aniqlashdir. Shundan so'ng, o'sish sur'ati qonuniyatlarini tavsiflash uchun zarur bo'lgan matematik mexanizm ishlab chiqiladi. Kirish ma'lumotlari hajmini oshirish bilan turli xil funktsiyalar; "bitta funktsiya boshqasiga qaraganda tezroq o'sadi" iborasi nimani anglatishini aniqlab olishga yordam beradi. Ba'zi hollarda, yaxshi bajarilish vaqtiga erishish yanada murakkab ma'lumotlar tuzilmalaridan foydalanishga bog'liq va bo'lim oxirida biz bunday ma'lumotlar strukturasining juda foydali misolini ko'rib chiqamiz: ustuvor navbatlar va ularni uyum(kucha, heap) asosida amalga oshirish.
Asosiy mavzu - hisoblash muammolarining samarali algoritmlarini izlash. Ushbu umumiylik darajasida kompyuterni hisoblashning butun sohasi ushbu mavzu bilan bog'liq bo'lib tuyuladi; bizning yondashuvimiz boshqalardan qanday farq qiladi? Algoritmlarni ishlab chiqishda umumiy mavzular va loyihalash tamoyillarini aniqlashga harakat qilamiz. Bizni samarali algoritmlarni loyihalashning asosiy usullarini minimal ma'lumot bilan namoyish etuvchi paradigmatik masalalar va usullar qiziqtiradi.
Algoritmlar samaradorligi bo’yicha 3 hil bolishi mumrin: 1) Eng yomon holat bunda algoritm masalani echish uchun maksimal sondagi amallarni bajarishni talab qiladi; 2) Eng yaxshi holat bunda algoritm masalani echish uchun minimal sondagi amallarni bajarishni talab qiladi; 3) Ortacha holat bunda algoritm masalani echish uchun maksimal va minimal sonlar orasidagi sondagi amallarni bajarishni talab qiladi.
Sodda hollarda ortacha samaradorlikni aniqlash algoritmga mumkin bolgan kirishlar, har bir kirish uchun algoritm asosida bajarilayotgan etaplar sonini aniqlash, barcha kirishlar uchun qadamlar sonini aniqlash va ularning hammasini qoshib hisoblangandan song kirishlar soniga bolish yordamida amalda oshiriladi.
r=(a+b+c)/2;
T=r*(r-a)*(r-b)*(r-c);
S=sqrt(T);
cout << "S=" <
}
else
{cout << "xatolik mavjud,qiymatni boshqa kiriting"<
goto bosh;}
return 0;
}
Xulosa.
Xulosa qilib aytadigan bo’lsam Algoritm bu to’g’ri aniqlangan xisoblash jarayoni,natijaga kiradigan berilgan kiruvchi matnni chiquvchi matnga aylantiruvchi hisoblash qadamlari ketma ketligidan iborat jarayon.Algoritmlar yordamida biz murakkab masalalarni chekli qadamlar orqali ijobiy natijaga erishishimiz mumkin.Eng murakkab masalalar ham funksiya yordamida algoritmga solinsa soda holatga kelishi mumkin.Biz algoritmdan har qanday dasturlash tilidan ham foydalanishimiz mumkin.yuqoridagi ikkala misolda ham algoritmning C++ dagi ko’rinishidan foydalanganman
Algorim korrekt va nokorrekt deb atalishi mumkin.Agar uning natijasi barcha kiruvchi matnlar matnlar uchun aniq chiquvchi matnlarni tashkil etsa bu korrekt agar uning natijasi ba’zi bir kiruvchi matnlar uchun noto’g’ri bo’lsa yoki umuman natija bermasa bu nokorrekt hisoblanadi.Asosan algoritmni tekshirishda korrekt algoritmdan foydalanamiz ammo ba’zilar noodatiy ya’ni nokorrekt algoritmda tekshirishadi.
Algoritm samarador deyiladi agar u tezkor bajariladigan bo’lsa.Algoritmning tezkorligi berilgan algoritmda qadamlar chekli bo’lishi,keraksiz amallar ishlatilmasligi,va tog’riroq funksiyalardan foydalanishiga bog’liq.
Adabiyotlar:
Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн «Алгоритмы. Построение и анализ» Вильямс, 2013 год, 1324 стр. Издание 3-е
http://www.math.nsc.ru/LBRT/k5/OR-MMF/Kleinberg_Tardoc_algoritmy_razrabotka_i_primenenie.pdf
https://e-maxx.ru/bookz/files/cormen.pdf
https://studfile.net/preview/5535319/page:24/
Do'stlaringiz bilan baham: |