Pazar Kasım 10th, 2019

Bubble Sort

ile Ebubekir Sezer

Merhabalar, daha önceki yazılarımda Selection ve Insertion Sort algoritmaları yazmıştım bu yazımda ise Bubble Sort algoritmasını yazmaya çalışacağım. Bubble Sort’un çalışma mantığı dizi içerisindeki en büyük elemanı bulup bütün elemanlarla karşılaştırarak en sona koyuyor ve daha sonra bu işlemi array sıralanana kadar devam ettiriyor.  Örnek vermek gerekirse şöyle bir array’imiz olduğunu düşünün array = [3,1,6,5,7,8,2,4] bu array’in sıralanması için şöyle bir yol izliyor:

3,1,6,5,7,8,2,4 -> karşılaştırılıyor eğer büyük ise yerleri değiştiriliyor aşağıdaki gibi işlemler uygulanıyor.

3,1,6,5,7,8,2,4 -> 3,1,6,5,7,2,8,4 -> 3,1,6,5,2,7,8,4 -> 3,1,6,2,5,7,8,4 -> 3,1,2,6,5,7,8,4 -> 3,1,2,6,5,7,8,4 -> 1,3,2,6,5,7,8,4

Array sıralan’ana kadar bu şekilde işlemler devam ediyor.

C Kodu:

#include<stdio.h>

void bubbleSort(int array[],int size){
	int temp;
	
	for(int i=0;i<size;i++){
		for(int j = size-1;j>i;j--){
			if(array[j-1]>array[j]){
				temp = array[j-1];
				array[j-1]= array[j];
				array[j] = temp;
			}
		}
	}
}

void maxToMin(int array[],int size){
	
	int temp;
	for(int i=0;i<size;i++){
		for(int j=size-1;j>i;j--){
			if(array[j-1]<array[j]){
				temp = array[j-1];
				array[j-1] = array[j];
				array[j] = temp;
			}
		}
	}
}

int main(){
	int array[] = {3,1,6,5,7,8,2,4};
	int size = sizeof(array)/sizeof(array[0]);
	
	bubbleSort(array,size);
	
	for(int i = 0;i<size;i++){
		printf("%d ",array[i]);
	}
	printf("\n");
	int myarray[] = {3,1,6,5,7,8,2,4};
	int mysize = sizeof(array)/sizeof(array[0]);
	
	maxToMin(myarray,mysize);
	for(int i = 0;i<mysize;i++){
		printf("%d ",myarray[i]);
	}
}

Python Kodu :

def bubbleSort(array):
    for i in range(len(array)):
        for j in range(0,len(array)-i-1):
            if array[j]>array[j+1]:
                array[j+1],array[j] = array[j],array[j+1]

def maxToMin(array):
    for i in range(len(array)):
        for j in range(0,len(array)-i-1):
            if array[j]<array[j+1]:
                array[j+1],array[j] = array[j],array[j+1]

array = [3,1,6,5,7,8,2,4]
bubbleSort(array)
print("Bubble Sort")
for i in range(len(array)):
    print("%d "%array[i])
    
array = [3,1,6,5,7,8,2,4]
maxToMin(array)
print("Max to Min")
for i in range(len(array)):
    print("%d" %array[i])

Soru ve görüşlerinizi e-mail veya yorum olarak belirtirseniz sevinirim.