Bu yazımızda selection sort (seçerek sıralama) algoritması hakkında bilgiler vereceğiz.

Selection Sort (Seçerek Sıralama) Algoritması Nedir ?

Selection Sort, verilen bir diziyi sıralamak için kullanılan bir algoritmadır. Algoritma, dizinin her elemanını sıralanmış kısımdaki yerine yerleştirmek için arama yapar.

Selection Sort (Seçerek Sıralama) Nasıl Çalışır ?

Algoritma, dizinin başlangıcından başlar ve dizinin en küçük elemanını bulur. En küçük eleman dizinin başına yerleştirilir ve arama, dizinin geri kalanı için devam eder. Bu işlem, dizinin sonuna kadar devam eder ve tüm elemanlar sıralanmış kısımdaki yerine yerleştirilir. Bu, dizinin sıralanmış hale getirilmiş olmasına neden olur.

Özetle:

  1. Dizinin ilk elemanı ile işlem yapılmaz ve dizinin geri kalanı için arama yapılır.
  2. Dizinin geri kalanı içinde en küçük elemanı buluruz.
  3. Bulunan en küçük eleman ile dizinin ilk elemanı yer değiştirir.
  4. İkinci adım tekrar edilir ve arama dizinin geri kalanı için devam eder.
  5. Bu işlem, dizinin sonuna kadar devam eder ve tüm elemanlar sıralanmış kısımdaki yerine yerleştirilir.

Selection Sort (Seçerek Sıralama) Zaman Karmaşıklığı Nedir ?

Selection Sort Algoritması’nın zaman karışıklığı O(n^2) ‘dir. Bu, algoritmanın en kötü durumda en kötü performansının n^2 olduğu anlamına gelir. Bu, algoritmanın dizinin boyutu arttıkça çok yavaş bir şekilde çalışabileceği anlamına gelir. Bu nedenle, algoritma genellikle dizinin boyutu çok büyük olmadığı durumlarda kullanılır.

Selection Sort (Seçerek Sıralama) Örnek Kullanımı

Şimdide C programlama dili kullanılarak Selection Sort Algoritması’nın nasıl uygulanacağını görelim.

#include <stdio.h>

void selectionSort(int arr[], int n) {
    int i, j, min_idx, temp;
    for (i = 0; i < n-1; i++) {
        min_idx = i;
        for (j = i+1; j < n; j++) {
            if (arr[j] < arr[min_idx]) {
                min_idx = j;
            }
        }
        temp = arr[min_idx];
        arr[min_idx] = arr[i];
        arr[i] = temp;
    }
}

int main() {
    int arr[] = {64, 25, 12, 22, 11};
    int n = sizeof(arr)/sizeof(arr[0]);
    selectionSort(arr, n);
    printf("Sıralanmış dizi: \n");
    for (int i=0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}

Bu kod, verilen bir diziyi Selection Sort Algoritması kullanarak sıralar. Bu örnekte, dizi elemanlarını manuel olarak girdik fakat gerçek uygulamalarda dizi elemanlarını genellikle kullanıcıdan alırız veya dosyadan okuruz.

Bu yazı dikkatini çekebilir.   Arama Algoritmaları - Binary Search (İkili Arama) Algoritması

Çıktısı :

Sıralanmış dizi: 
11 12 22 25 64

Bu yazımızda selection sort (seçerek sıralama) algoritması hakkında bilgiler verdik. Diğer veri yapıları konulu yazılarımızı okumak için buraya tıklayabilirsiniz.