Bubble Sort algoritması (Kabarcık Sıralaması) nedir? Ne için kullanılır?
Bubble Sort algoritması nedir?
Bubble Sort bir sıralama algoritmasıdır. Basitçe özetlemek gerekirse ardışık olan 2 değeri birbiriyle kıyaslayıp sıralamasıyla ve bu işlemin sürekli tekrarlanmasıyla yapılır.
Bubble Sort algoritması adımları
Algoritma adımlarını şu şekilde gösterebiliriz.
- İlk 2 sayıyı al
- Bu 2 sayıyı karşılaştır
- Küçük olanı yaz diğerini aklında tut
- Dizinin sonuna geldiysen aklındaki sayıyı diziye yazarak bitir
- Dizinin sonu değilse yeni bir sayı al.
- 2. adıma geri git.
Bir örnek yapalım
Sıralamak istediğimiz dizi şu şekilde olsun:
- 5,7,2,9,6,1,3
İşlemlerimizi adım adım gerçekleştirelim.
1. adım: 5 – 2 – 7 – 6 – 1 – 3 – 9
2. adım: 2 – 5 – 6 – 1 – 3 – 7 – 9
3. adım: 2 – 5 – 1 – 3 – 6 – 7 -9
4. adım: 2 – 1 – 3 – 5 – 6 – 7 – 9
5. adım: 1 – 2 – 3 – 5 – 6 – 7 – 9
6. adım: 1 – 2 – 3 – 5 – 6 – 7 – 9
6. adımımızda dizimizi sıralı bir şekilde elde ediyoruz.
Kodlama
Python, Java ve C dillerinde ise şu şekilde yazabiliriz.
PYTHON
def bubbleSort(array): n = len(array) for i in range(n): for j in range(n-1,0,-1): if array[j-1] > array[j]: temp = array[j-1] array[j-1] = array[j] array[j] = temp return array
JAVA
public void BubbleSort(int [] Array) { int tmp; for(int i=0; i<Array.length; i++) { for(int j=Array.length-1 ; j>i;j--) { if(Array[j-1]>Array[j]) { tmp=Array[j-1]; Array[j-1]=Array[j]; Array[j]=tmp; } } } }
C
void BubbleSort(int Array[], int n){ int tmp; for(int i=0; i<n; i++) { int sirali_mi = 1; for(int j=n-1 ; j>i;j--) { if(Array[j-1]>Array[j]) { sirali_mi = 0; tmp=Array[j-1]; Array[j-1]=Array[j]; Array[j]=tmp; } } if(sirali_mi) break; } }