"Enter"a basıp içeriğe geçin

Seçerek Sıralama (Selection Sort)

Merhabalar, Seçerek sıralama algoritması ile array içerisinde küçükten büyüğe veya büyükten küçüğe sıralama yapabilirsiniz. Algoritmanın çalışma mantığı, Array içerisinde bulunan ilk elemana minimum diyoruz ve daha sonra array içerisinde for döngüsünü kullanarak eğer seçtiğimiz sayıdan küçük bir sayı varsa bu sefer onu minimum değişkenimize atıyoruz. Algoritma gayet basit. Algoritmaların karmaşıklığına göre sıralamaları oluyor, Seçerek sıralamanın karmaşıklığını n2 ile hesaplıyoruz. Bu algoritmayı örnek olması açısından hem C programlama dile hemde Python programlama dili ile yazdım. Örneklerde sadece küçükten büyüğe değil büyükten küçüğe de sıralıyorum.

C kodu;

#include<stdio.h>

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

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

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

Python Kodu;

array = [1,3,6,5,7,8,2,4]

for i in range(len(array)):
    min = i
    for j in range(i+1,len(array)):
        if array[min]>array[j]:
            min = j
    array[i],array[min] = array[min],array[i]

print("Selection Sort")
for i in range(len(array)):
    print("%d" %array[i])


for i in range(len(array)):
    max = i
    for j in range(i+1,len(array)):
        if array[j]>array[max]:
            max = j
    
    array[i],array[max] = array[max],array[i]

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.

Tek Yorum

  1. This piece of writing gives clear idea designed for the new viewers of blogging, that genuinely how to do running a blog.| а

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir