Sıralama alqoritmləri-1 — Selection sort(Seçmə ilə sıralama)
Sıralama alqoritmləri kompüterimizdə və ya riyazi həllərdə massivi, listi — (riyazi deyişlə hər hansı çoxluğu)-un dəyərlərini, üzvlərini sıralayan alqoritmlərdir. Ən çox tətbiq edilən və geniş yayılmışlara bir-bir toxunaraq nümunələrlə izah edəcəm
Selection Sort(Seçmə ilə sıralama)
Bu alqoritmin işləmə məntiqi hər iterasiya(dövr)-də ən kiçik ədədi taparaq sıra ilə düzür. Əlbəttə tam tərsi olaraq ən kiçik deyil, ən böyüyü hər cəhddə yoxluyub düzməklə də etmək olar. Gəlin nümunəyə diqqət yetirərək daha aydın başa düşməyə çalışaq!
Alqoritm ilk olaraq 1-ci dəyərdən sonuncu dəyərə kimi hər birini yoxluyur və ən kiçiklə 1-ci dəyər yer dəyişdirir(swapping). Bu proses son dəyərə kimi davam edəcək. İkinci addımda 2-ci dəyərdən sonuncu dəyərə kimi yoxluyur və ən kiçiklə 2-ci dəyər yer dəyişdirir. Əgər yoxlama zamanı ən kiçik elə dəyərin özüdürsə heç-bir yerdəyişmə olmur, çünki yerinə keçəcək daha kiçik dəyər yoxdur. Beləcə hər addımda sıra ilə kiçikdən böyüyə tam düzülmüş hala daha da yaxınlaşır. Ən sonda artıq son dəyər də yoxlanışdan keçdikdən sonra çoxluq(list, massiv və b.) sıralanmış şəkildə hazır olur
Nümunə kod kimi bu alqoritmin python üçün yazdığıma baxa bilərsiz
Alqoritmlər barədə danışanda “Time Complexity” barədə də məlumat vermək önəmlidir ki, hansının nə qədər zamanda icra olunduğunu, ümumilikdə performans fərqlərini başa düşək(Selection Sort-un TC-ne cedvelde baxa bilersiz). Bu səbəblə sırf başqa məqalədə tam detallı “Big O Notation” haqqında məlumat verəcəm, həmin məqalə “Time Complexity”-nin sadə şəkildə nə olmasından, hesablanma üsuluna kimi və alqoritim seçiminə təsir edən “Space Complexity” kimi önəmli detalları əhatə edəcək, izləmədə qalın! :)
Məqaləni bəyəndinizsə və ya hər hansı fikriniz varsa postu bəyənməyiniz və rəy bildirməyinizdən məmnun olarıq. Təşəkkürlər!