Konu
:
Sıralama Algoritmaları
Yalnız Mesajı Göster
Sıralama Algoritmaları
10-29-2012
#
13
Prof. Dr. Sinsi
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 < dizi
Length - 1; i++)
{
enkucuk = i;
for (int j = i + 1; j < dizi
Length; 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 1
elman 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
Prof. Dr. Sinsi
Kullanıcının Profilini Göster
Prof. Dr. Sinsi Kullanıcısının Web Sitesi
Prof. Dr. Sinsi tarafından gönderilmiş daha fazla mesaj bul