Oraliq nazorat


Download 0.53 Mb.
bet2/2
Sana01.06.2020
Hajmi0.53 Mb.
#112694
1   2
Bog'liq
ORALI NAZORAT ISHI

Bilasiz, formuladagi amallar ma'lum bir tartib bilan bajarilishi shart.

3 Algoritmning jadval yordamida ifodalanishi Algoritmning bu ko'rinishda berilishi ham sizga tanish. Masalan, matematikada qo'llanib kelinayotgan Bradis jadvali deb nomlangan to‘rt xonali matematik jadval, lotareya yutuqlar jadvali, Mendeleyev kimyoviy elementlar jadvali. Bunday jadvallardan foydalanish maMum bir algoritm qo'llashni talab etadi. Biror funksiyaning grafigini chizish uchun ham funksiyaning argument qiymatlariga mos qiymatlar jadvaiini hosil qilamiz. Bu ham algoritmning jadval ko‘rinishiga misol bo'ladi. 4 Algoritmning grafik shaklda ifodalanishi Algoritmning bu ko‘rinishda ifodalanishi matematikada chizilgan grafik, kerakli uyni oson topish uchun dahalarda o‘rnatilgan uylarning joylashish sxemasi, avtobuslarning yo'nalish sxemasi orqali sizga tanish. Algoritmlash asoslarini o‘rganishning yana bir qutay grafik shakli — blok-sxema usulidir. Blok-sxemalar bir yoki bir nechta buyruq yoki ko'rsatmani aks ettiruvchi maxsus geometrik shakllar — bloklardan tashkil topadi. Bloklar yo'nalish chiziqlari orqali tutashtiriladi.



Qo‘llanmada, asosan, algoritmuk tafakkurning rivojlantirishini maqsad qilib qo‘ygan bo‘lsak-da, algoritm to‘g‘risida tasawuringizni kengaytirish maqsadida yana ba’zi ma'lumotlarni berishni lozim topdik. Har qanday algoritm mantiqiy tuzilishiga, ya'ni bajarilishiga qarab uch asosiy turga bo‘linadi: chiziqli (ketma-ketlik), tarmoqlanuvchi va takrorlanuvchi. Algoritmikada bu algoritmlar asosida turli-tuman yangi algoritmlar hosil qilinadiki, ular ham o‘z navbatida mustaqil ahamiyatga ega bo'ladi. Chiziqli algoritmlar. Bu turdagi algoritmlarda hech qanday shart tekshirilmaydi. Shu sababli barcha ko‘rsatmalar ketma-ket bajarib boriladi. «G‘ishtlar sonini hisob!ash», «Doira yuzini hisoblash» algoritmlari chiziqli algoritmlarga misol bo'ladi. Lekin hayotimizdagi juda ko‘p jarayonlar shartlar asosida boshqariladi.Tarmoqlanuvcbi algoritmlar. Shartga muvofiq bajariladigan

ko‘rsatmalar ishtirok etgan algoritmlar tarmoqlanuvchi algoritmlar deb ataladi. Algoritmlaming bu turi hayotimizda har kuni va har qadamda uchraydi. Eshikdan chiqishimiz eshik ochiq yoki yopiqligiga, ovqatlanishimiz, qornimiz och yoki to‘qligiga yoki taomning turiga, ko'chaga kiyinib chiqishimiz ob-havoga, biror joyga borish uchun transport vositasini tanlashimiz to‘lash imkoniyatimiz bo'lgan pulga bogMiqdir. Demak, tarmoqlanuvchi algoritmlar chiziqli algoritmlardan tanlash imkoniyati bilan farqlanar ekan. Amal yoritilgan «Ko‘chadan o‘tish», «Kvadrat tenglamani yechish» algoritmlari ham tarmoqlanuvchi algoritmlarga misol bo‘ladi.

Takrorlanuvchi (siklik) algoritmlar. Masalalarni tahlil etish jarayonida algoritmdagi ba’zi ko'rsatmalar takroran bajarilishini kuzatish mumkin. Hayotimizda ham juda ko‘p jarayonlar takrorlanadi. Masalan, darslarning har hafta takrorlanishi, har kuni nonushta qilish yoki maktabga borish va hokazo. Ko‘rsatmalari takroriy bajariladigan algoritmlar takrorlanuvchi algoritmlar deb ataladi.


  1. Tez saralash (quicksort) algoritmi - Charlz Xoar tomonidan yaratilgan mashxur saralash algoritmidir. Ushbu algoritm n ta elementdan iborat massivni eng uzogʻi bilan O(n2) vaqtda saralaydi. Biroq algoritm bajarilish tezligining matematik kutilmasi O(n log n) ga teng va u boshqa shunday tezlikda bajariluvchi algoritmlardan tezroq ishlaydi.

  1. Massivda ixtiyoriy tayanch element tanlaymiz.

  2. Keyin undan kichik yoki teng elementlarni uning chap tomoniga, katta elementlarni oʻng tomoniga oʻtkazamiz.

  3. 1-2-chi qadamlarni tayanch elementning oʻng va chap tomonlaridagi elementlar uchun qoʻllaymiz.

Algorimning 2 qadami turlicha boʻlib uning bir nechta realizatsiyalari mavjud. Ayni shu 2 qadamda elementlarni joylashtirish algoritmi tufayli algoritm saralash algoritmlari ichida eng tez ishlaydiganlaridan biridir.

Tez saralash (QuickSort) algoritmining javascriptdagi realizatsiyasi



function QuickSort(A, p, r)

{

if(p

{

var q = Partition(A, p, r);

QuickSort(A, p, q);

QuickSort(A, q+1, r);

}

}



function Partition(A, p, r)

{

var x = A[r];



var i=p-1;

for(var j=p; j<=r ;j++ )

{

if(A[j] <= x)

{

i++;


var temp = A[i];

A[i] = A[j];

A[j] = temp;

}

}



return i

}

C tilida


void swap(int *a, int *b)

{


int t=*a; *a=*b; *b=t;

}

void sort(int arr[], int beg, int end)

/* sort elements arr[beg],...,arr[end-1]*/

{

int middle,l,r;



if (end > beg + 1)

{

middle=arr[(beg+end)/2];



l=beg;r=end;

while (l < r)

{

while (arr[l]

while (arr[r]>middle) r--;

if (l{

swap(arr[l],arr[r]);



l++;r--;

}

}



sort(arr, beg, r);

sort(arr, l, end);

}

}

C++ tilida


#include

#include

#include
template< typename BidirectionalIterator, typename Compare >

void quick_sort( BidirectionalIterator first, BidirectionalIterator last, Compare cmp ) {

if( first != last ) {

BidirectionalIterator left = first;

BidirectionalIterator right = last;

BidirectionalIterator pivot = left++;


while( left != right ) {

if( cmp( *left, *pivot ) ) {

++left;


} else {

while( (left != --right) && cmp( *pivot, *right ) )

;

std::iter_swap( left, right );



}

}
--left;

std::iter_swap( first, left );
quick_sort( first, left, cmp );

quick_sort( right, last, cmp );

}

}
template< typename BidirectionalIterator >



inline void quick_sort( BidirectionalIterator first, BidirectionalIterator last ) {

quick_sort( first, last,

std::less_equal< typename std::iterator_traits< BidirectionalIterator >::value_type >()

);

}



3. Algoritm-bu algoritmik jarayonni o'zboshimchalik bilan dastlabki ma'lumotlar bilan boshlangan (ma'lum bir manba algoritmining ba'zi bir to'plamidan) va ushbu dastlabki ma'lumotlar bilan to'liq aniqlangan natijaga erishishga qaratilgan aniq ko'rsatma. Algoritmik jarayon-bu alohida "qadamlar"bilan yuzaga keladigan konstruktiv ob'ektlarni (so'zlar, raqamlar, so'z juftlari, raqamlar, jumlalar va boshqalar) ketma-ket konvertatsiya qilish jarayoni. Har bir qadam bir konstruktiv ob'ektni boshqasiga o'zgartirishdan iborat.

Evklid algoritmi

tabiiy sonlar juftligining eng katta umumiy bo'linmasini topish uchun mo'ljallangan (m, n)

1 {qoldiqni topish} r: = m mod n.

2 {almashtirish} m: = n; n: = g.

3 {to'xtatish?} Agar n< > 0 bo'lsa, 1-bandga o'ting.

4 {jarayoni to'xtatish} m-kerakli raqam.

Euclid algoritmidagi konstruktiv moslamalarni m=10, n=4 raqamlari juftligi uchun o'zgartirish:

(10, 4)  (4, 2)  (2, 0)

Algoritmlarni ishlab chiqish usullari

Algoritmlarni ishlab chiqish usullari va usullarining juda ko'p turlari mavjud. Ular orasida biz bunday to'plam usullari tez-tez ishlatiladi va ko'p algoritmlar va tartib asosida, deb ma'noda asosiy kichik majmuini ajratish mumkin. Ushbu usullarni bilish har qanday dasturchi uchun zarurdir.

Rivojlanishning asosiy usullari

Maxsus maqsadlar usuli. Ushbu usul juda tez-tez ishlatiladi va ishlab chiquvchi ushbu usulning nomi haqida shubhalanmaydi

Qiyin vazifa oddiy vazifalar ketma-ketligiga to'g'ri keladi. Bu savol bilan: bu vazifani oddiy vazifalar majmuasiga ajratish mumkinmi va algoritmni ishlab chiqishni boshlash kerakmi?

Olib tashlash usuli. Bundan tashqari, algoritmni ishlab chiqish uchun umumiy retsept. Algoritm dastlabki taxminni qabul qilish yoki muammoni dastlabki hal qilish bilan boshlanadi. Keyin tezroq (imkon qadar) yaxshiroq hal qilish uchun yuqoriga qarab harakat boshlanadi.

Variantlarni qidirish usullari

Sun'iy intellekt dasturlarining asoslari variantlarni qidirish dasturlashidir. Bu murakkab vazifadir, chunki busting algoritmlari ma'lum hisob-kitob qoidalariga muvofiq emas, balki sinov va xatolar bilan echimlarni qidiradi va sxema dasturlash tillarida mavjud bo'lgan tsikl sxemalariga mos kelmaydi. Vaziyat murakkablashadi, chunki to'g'ridan-to'g'ri usullar bilan barcha mumkin bo'lgan variantlarni izlash ularning katta miqdori tufayli amalga oshirilmaydi.

Orqaga qaytish usuli

Filiallar va chegaralar algoritmi



Ushbu usullar yechim maydonining daraxt modelini o'rganadi va bir ma'noda optimal echimni izlaydi

Download 0.53 Mb.

Do'stlaringiz bilan baham:
1   2




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