Təsadüfi və Rekursiv Alqoritm
Təsadüfi alqoritmlər alqoritmin icrası zamanı təsadüfi seçimlər edərək öz məntiqinə təsadüfilik hissini daxil edir. Bu təsadüfiliyə görə alqoritmin davranışı hətta sabit bir giriş üçün də dəyişə bilər. Bir çox problem üçün təsadüfi alqoritmlər ən sadə və effektiv həllər təqdim edir. Rekursiv alqoritmlər bir problemin həllinin eyni problemin daha kiçik alt problemlərinin həlli yollarını tapmaqla tapıla biləcəyi fikrinə əsaslanır. Rekursiya kompüter elmindəki problemlərin həlli üçün geniş istifadə olunur və bir çox yüksək səviyyəli proqramlaşdırma dilləri rekursiyanı dəstəkləyir.
Təsadüfi alqoritm nədir?
Təsadüfi alqoritmlər alqoritmin icrasına rəhbərlik edən təsadüfi seçimlər etməklə təsadüfilik hissini özündə birləşdirir. Bu, adətən, əlavə giriş kimi psevdor-təsadüfi say generatoru tərəfindən yaradılan təsadüfi ədədlər toplusunu götürməklə həyata keçirilir. Buna görə alqoritmin davranışı hətta sabit bir giriş üçün də dəyişə bilər. Quicksort, təsadüfilik anlayışından istifadə edən və daxiletmə xüsusiyyətlərindən asılı olmayaraq O(n log n) işləmə müddətinə malik olan geniş tanınan alqoritmdir. Bundan əlavə, hesablama həndəsəsində qabarıq gövdə kimi strukturların tikintisi üçün təsadüfi artımlı tikinti üsulu istifadə olunur. Bu üsulda giriş nöqtələri təsadüfi olaraq dəyişdirilir və sonra struktura bir-bir daxil edilir. Təsadüfi alqoritmin tətbiqi eyni problem üçün deterministik alqoritmin tətbiqindən nisbətən sadədir. Təsadüfi alqoritmin tərtib edilməsində ən böyük problem zaman və məkan mürəkkəbliyi üçün asimptotik analizin aparılmasıdır.
Rekursiv alqoritm nədir?
Rekursiv alqoritmlər problemin həllinin eyni problemin daha kiçik alt problemlərinin həlli yollarını tapmaqla tapıla biləcəyi fikrinə əsaslanır. Rekursiv alqoritmdə funksiya özünün əvvəlki versiyası baxımından müəyyən edilir. Qeyd etmək vacibdir ki, bu özünə istinad əbədi olaraq özünə istinad etməmək üçün son şərt olmalıdır. Özünə istinad etməzdən əvvəl xitam şərti yoxlanılır. Rekursiv alqoritmin ilkin addımı problemin rekursiv tərifinin əsas bəndi ilə bağlıdır. İlkin addımdan sonrakı addımlar problemin induktiv müddəaları ilə bağlıdır. Rekursiv alqoritmlər bir çox hallarda daha sadə həll yolu təqdim edir və eyni problem üçün təkrarlanan alqoritmdən daha təbii düşüncə tərzinə daha yaxındır. Lakin ümumiyyətlə, rekursiv alqoritmlər daha çox yaddaş tələb edir və onlar hesablama baxımından bahadır.
Təsadüfiləşdirilmiş və Rekursiv Alqoritm arasındakı fərq nədir?
Təsadüfi alqoritmlər alqoritmin icrasına təsir göstərə biləcək təsadüfi seçimlər edərək təsadüfilik hissindən istifadə edən alqoritmlərdir, rekursiv alqoritmlər isə problemin həllinin tapılması ilə tapıla biləcəyi fikrinə əsaslanan alqoritmlərdir. eyni problemin kiçik alt problemlərinin həlli. Təsadüfi alqoritmlərdəki təsadüfiliyə görə alqoritmin davranışı hətta eyni giriş üçün də dəyişə bilər (alqoritmin müxtəlif icralarında). Lakin bu, rekursiv alqoritmlərdə mümkün deyil və rekursiv alqoritmin davranışı sabit giriş üçün eyni olacaq.