Bubble Sort Algoritm

Anar Məmmədov
4 min readNov 20, 2020

--

Qabarcıqlı Sıralama.

Sıralama alqoritması nədir, necə işləyir və mahiyyəti nədən ibarətdir? Gəlin ilk öncə Bubble Sort sıralama alqoritmasına keçid etməmişdən qabaq, sıralama alqoritmasının nə olduğunu anlamağa çalışaq.

Sıralama Alqoritması nədir?

Sıralama alqoritmaları kompüter elmləri sahəsində vacib əhəmiyyət kəsb edir. Sıralama alqoritmaları vasitəsilə hər hansı bir proqramda şəkillər, text fayllar, videolar, həcminə, ən təzə və ya ən köhnə xüsusiyyətlərinə görə sıralanırlar. Məsələn excell proqramında insanlar adlarına görə, adlar eynidirsə, soyadlarına görə sıralanır. Sıralama dedik də bu nəzərdə tutulur və həmin proqramların hamısında sıralama varsa, o sıralamalar sıralama alqoritması ilə işləyir. Ümumilikdə proqramlaşdırılmada sıralama alqoritması dedikdə bu nəzərdə tutulur. Bu məqalədə biz sıralama alqoritma prinsipini massivlər üzərində öyrənəcəyik və öyrəndiyiniz bu alqoritma çox rahat şəkildə beynivizdə həkk olunacaqdır.

Bubble Sort(Qabarcıqlı Sıralama)

Bizim birinci araşdıracağımız və ya öyrənəcəyimiz sıralama alqoritması Bubble Sort sıralama alqoritmasıdır. Bubble Sort proqramlaşdırılmaya başlayarkən ilk öyrəniləcək sıralama alqoritmasıdır. Bu alqoritmanı öyrənmək həm asand, həm də populyar olduğundan ona görə birinci öyrənilir. Bubble Sort alqoritması çox da sürətli işləyən sıralama alqoritması deyildir! Sadəcə olaraq, bunu öyrənməyimizə səbəb sıralamanı bu alqoritma üzərindən öyrənərkən daha rahatdır və sıralama alqoritmasına Bubble Sort ilə giriş etmək daha uyğundur, ancaq çox da sürətli sıralama alqoritması deyildir. Kiçik həcmli və ya kiçik ölçülü massivlər olduqda yaxşı işləyə bilir, lakin ölçüsü böyük olan massivlər də isə zəif işləyəcəkdir. Onun mürəkkəbliyi çox olacaqdır.

Fərz eləyin ki, sizin proqramınızda bir massiviniz vardır və o massivin içərisində elementlər vardır. Fərz eləyin ki, bu massivin elementləri aşağıdakı şəkildəki kimidir:

Şəkil-1.

Bu massivi biz ya artan sıra ilə, yadakı azalan sıra ilə sıralaya bilərik. Şəkil-2 də göstərilmişdir.

Şəkil-2.

Bubble Sortda necə işləyir?

Fərz eləyin ki, proqramınızda qarışığ elementlər olan massiv vardır.

Bunu gəlin birinci azalandan-artana doğru sıralamasına baxaq. Necə sıralaya bilərik azalandan-artana doğru?

Bu alqoritma bu yolla işləyir:

1)İlk öncə massivin ilk elementi götürülür və o götürülən ilk element özündən sonrakı element ilə müqayisə prosesinə girir.

2) Əgər götürülən massivin birinci elementi, özündən sonrakı elementdən böyükdürsə, o zaman birinci elementlə, ikinci elementin yerləri dəyişdirilir. Gəlin bu müqayisə olunma prosesindən sonrakı hala baxaq:

Şəkil-3.

3)Daha sonra, növbəti element ilə bir sonrakı element arasında müqayisə prosesi gedir. Aşağıdakı şəkildə göstərilmişdir.

Şəkil-4.

Bu proses ardıcıl şəkildə bu şəkildə müqayisə oluna-oluna taki 7 ən son xanaya yerləşdirilənə qədər proses davam etdirilir. 7-nin ən son xanaya yerləşdirilməsinə səbəb, bizim sıralamanın azalandan-artana doğru olmasıdır.Aşağıdakı şəkildə bu prosesin həll yolları göstərilmişdir.

Şəkil-5.

Burada nə baş verdi? Biz hər dəfəsində massivin elementini götürüb özündən sonrakı elementlə hər dəfə müqayisə edərək götürdüyümüz həmən o elementi massivin sonuncu xanasına aparmış olduq. Bir dəfə massiv üzərində gəzişmək ilə. Biz artıq bilirik ki, massivimizin ən böyük elementi massivin ən sonuncu indeksində yerləşir, yəni n-1 də.

Yenidən əvvəldən müqayisə edərkən götürmüş olacağımız ilk elementi, massivin sonuncu elementi ilə müqayisə etməyimiz mənasız olacaq deyə artıq elə kod yazacayıq ki, müqayisə olunan element massivin sonuncu elementi ilə müqayisə olunmasın, çünki biz öz əlimiz ilə onu aparıb oraya qoymuşuq və o artıq ən böyük elementdir.

Sonra isə əvvəldən yerdə qalan elementlər arasında müqayisə edirik, eyni ilə birinci müqayisə də necə eləmişdik elə.

Burada yenidən müqayisə olunma prosesin də götürülən birinci element özündən sonrakı elementdən böyük olmadığından proqram bunun yanlış olduğunu biləcəkdir və 3 olduğu kimi yerində qalacaqdır. Növbəti mərhələ də isə massivin 2-ci elementi, yəni 6 müqayisə olunacaqdır özündən sonrakı element ilə əgər şərt doğru olarsa, yəni müqayisə doğru olarsa o zaman yerlərin dəyişəcəkdir.

Bu proses də artıq, massivin elementi olan 6 gedib dayanacaqdır massivin sonuncu elementi olan 7-dən əvvəldə.

Bu formada davam edə-edə massivimiz bu ardıcıllıq ilə düzüləcəkdir.

Bubble Sort Alqoritmasının kod tərəfindən yazılması.

Yuxarıdakı kod işlək vəziyyətə gətirildiyində şəkildəki nəticə ekranda çapa verilmiş olacaqdır.

Algoritmanın video dərsliyi: https://www.youtube.com/watch?v=2CnJm8efNBI

Algoritmanın kod ilə yazılmış linki: https://pastebin.com/bFXwm9yV

Note:Bu kod C proqramlaşdırılma dilində yazılmışdır, ona görə başa düşmüyə bilərsiniz.

--

--

Anar Məmmədov
Anar Məmmədov

Written by Anar Məmmədov

Java Backend Developer wondering RDBMS and processing of structure any technology that is related backend.

No responses yet