Alqoritmlərin analizi (ing. Analysis of algorithms) — bir alqoritmin effektivliyini və performansını qiymətləndirmək üçün istifadə olunan metodlardır.[1] Bu analiz alqoritmin işləmə sürətini və resurs tələbatını (məsələn, yaddaş və vaxt sərfiyyatını) təhlil etməyə kömək edir. Əsas məqsəd, alqoritmin xüsusən böyük həcmli məlumatlar üçün nə dərəcədə effektiv olduğunu və hansı hallarda üstünlük təşkil etdiyini müəyyən etməkdir.[2]
Zaman mürəkkəbliyi (ing. Time Complexity) — alqoritmin həlli üçün tələb olunan vaxtın giriş məlumatlarının ölçüsündən asılı olaraq necə dəyişdiyini təhlil edir. Giriş ölçüsünün artması ilə alqoritmin işləmə müddəti də artar və bu artımı təsvir etmək üçün asimptotik notasiya (böyük "O" notasıyası) istifadə edilir.[3]
Zaman mürəkkəbliyi dərəcələri:
Məkan mürəkkəbliyi (ing. Space Complexity) — alqoritmin işlənməsi üçün tələb olunan yaddaş həcmini təsvir edir. Əsas məqsəd alqoritmin giriş ölçüsündən asılı olaraq nə qədər əlavə yaddaş tələb etdiyini müəyyən etməkdir.[5]
Məkan mürəkkəbliyini analiz edərkən əsasən iki əsas yaddaş növü nəzərə alınır:
Alqoritmin giriş məlumatlarına əsasən müxtəlif hallar üçün effektivliyini təhlil etmək üçün bu üsullar istifadə olunur:
Alqoritmlərin performansını qiymətləndirmək üçün asimptotik notasiya istifadə edilir:[9]
Alqoritmin analizi, müxtəlif alqoritmləri müqayisə edərkən onların performansını dəqiq qiymətləndirməyə imkan verir. Məsələn, sıralama alqoritmlərinin (ing. bubble sort, merge sort, quick sort) zaman mürəkkəbliyi müqayisə edilərək, giriş ölçüsünün böyüklüyünə görə ən uyğun olan alqoritm seçilə bilər.[10]
Alqoritmin analizi proqram təminatı və alqoritm dizaynında mühüm rol oynayır və bu analizlə proqramın effektivliyi artırıla bilər.