Yalnız Mesajı Göster

Sıralama Algoritmaları

Eski 10-29-2012   #13
Prof. Dr. Sinsi
Varsayılan

Sıralama Algoritmaları



Seçmeli Sıralama


Seçmeli Sıralama, bilgisayar bilimlerinde kullanılan karmaşıklığı bir sıralama algoritmasıdır Karmaşıklığı
olduğu için büyük listeler üzerinde kullanıldığında verim sağlamaz ve genel olarak benzeri olan eklemeli sıralamadan daha başarısızdır Seçmeli sıralama yalın olduğu ve bazı durumlarda daha karmaşık olan algoritmalardan daha iyi sonuç verdiği için tercih edilebilir



Seçmeli sıralama algoritması



Seçmeli Sıralama'nın nasıl çalıştığını gösteren görüntü

Yöntem
Seçmeli Sıralama'nın nasıl çalıştığını gösteren görüntü

Algoritma aşağıdaki gibi çalışır:

Listedeki en küçük değerli öğeyi bul
İlk konumdaki öğeyle bulunan en küçük değerli öğenin yerini değiştir
Yukarıdaki adımları listenin ilk elemanından sonrası için (ikinci elemandan başlayarak) yinele

Sözde Kodu

A sıralanacak öğeler kümesi, n ise A'daki öğe sayısıdır Dizi 0 numaralı dizinle başlamaktadır

for i ← 0 to n-2 do
min ← i
for j ← (i + 1) to n-1 do
if A[j] < A[min]
min ← j
swap A[i] and A[min]



Seçmeli Sıralama Algoritmasının Örnek Kodu

public int[] secmeliSiralama(int[] dizi)
{
int enkucuk, yedek;
for (int i = 0; i < diziLength - 1; i++)
{
enkucuk = i;
for (int j = i + 1; j < diziLength; j++)
if (dizi[j] < dizi[enkucuk])
enkucuk = j;
if (enkucuk != i)
{
yedek = dizi[i];
dizi[i] = dizi[enkucuk];
dizi[enkucuk] = yedek;
}
}
return dizi;





6 elemanlı içeriği karışık olarak verilmiş bir bir sayı dizisinin Seçmeli Sıralama algoritması kullanılarak nasıl küçükten-büyüğe doğru sıralandığını göstermektedir 1 adımda dizinin ilk elemanı (6) alınır Bu eleman diğer 5 eleman ile karşılaştırılır Eğer bulunan eleman(1) ilk elemandan küçükse 1elman ile yer değiştirilir 2 adımda dizinin ikinci elemanı(3) alınır Bu eleman kalan 4 eleman ile karşılaştırılır Eğer bulunan eleman(2) ikinci elemandan küçükse 2 eleman ile yer değiştirilir ve bu işlem dizi sonuna kadar devam eder Böylelikle dizi küçükten-büyüğe sıralanmış olur

Alıntı Yaparak Cevapla