Seçmeli Sıralama, bilgisayar bilimlerinde kullanılan 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 | |
---|---|
Seçmeli sıralama algoritması | |
Sınıf | Sıralama algoritması |
Veri yapısı | Dizi |
Zaman karmaşıklığı | O(n²) |
En iyi | Genellikle değil |
Alan karmaşıklığı | toplamda О(n), ek alan O(1) |
Yöntem
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
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; } }
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; }
Karmaşıklık Hesabı
Seçmeli sıralama algoritmasının zaman karmaşıklığı hesaplanırken, yapılan karşılaştırmalar ve yer değiştirmeler dikkate alınır. Seçmeli sıralama algoritması elemanlı bir listede, en küçük eleman için tane karşılaştırma yapar, ikinci en küçük eleman için tane karşılaştırma yapar, diğer elemanlar için karşılaştırma sayısı , , ..., 2, 1, 0 şeklinde azalarak devam eder. Listedeki bütün elemanlar için yapılan karşılaştırmaların toplamı
yapar.
Her bir eleman için bir kez yer değiştirme yapılır, tüm liste için toplam tane yer değiştirme işlemi yapılır. Hesaplamalar sonucunda elde edilen
değerlerinin asimptotik üst sınırı değerini verir. Seçmeli sıralama algoritması listenin en küçük elemanının nerede olduğunu bilmediği ve her bir eleman için tüm elemanlarla karşılaştırma yaptığı için liste içindeki elemanların rastgele sıralanmış ya da eşit elemanlardan oluşmasını dikkate almaz, bu sebeple seçmeli sıralama algoritması her durumda karmaşıklığıyla çalışır.
Diğer Sıralama Algoritmaları
Kaynakça
- ^ Robert Sedgewick, Kevin Wayne, Algorithms 4th Edition, Addison-Wesley 2011 (chapter 2 p. 248)
Dış bağlantılar
- Selection Sort Demo7 Mart 2008 tarihinde Wayback Machine sitesinde .
- Selection Sort Demo[]
- Pointers to
- C++ Program - Selection Sort 12 Mart 2008 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Secmeli Siralama bilgisayar bilimlerinde kullanilan bir siralama algoritmasidir Karmasikligi O n2 displaystyle mathcal O n 2 oldugu icin buyuk listeler uzerinde kullanildiginda verim saglamaz ve genel olarak benzeri olan eklemeli siralamadan daha basarisizdir Secmeli siralama yalin oldugu ve bazi durumlarda daha karmasik olan algoritmalardan daha iyi sonuc verdigi icin tercih edilebilir Secmeli siralamaSecmeli siralama algoritmasiSinifSiralama algoritmasiVeri yapisiDiziZaman karmasikligiO n En iyiGenellikle degilAlan karmasikligitoplamda O n ek alan O 1 Secmeli Siralama nin nasil calistigini gosteren goruntuYontemAlgoritma asagidaki gibi calisir Listedeki en kucuk degerli ogeyi bul Ilk konumdaki ogeyle bulunan en kucuk degerli ogenin yerini degistir Yukaridaki adimlari listenin ilk elemanindan sonrasi icin ikinci elemandan baslayarak yinele Sozde Kodu A siralanacak ogeler kumesi n ise A daki oge sayisidir Dizi 0 numarali dizinle baslamaktadir for i 0 to n 2 do min i for j i 1 to n 1 do if A j lt A min min j swap A i and A min Secmeli Siralama Algoritmasinin Ornek Koduint enkucuk yedek for int i 0 i lt dizi Length 1 i enkucuk i for int j i 1 j lt dizi Length j if dizi j lt dizi enkucuk enkucuk j if enkucuk i yedek dizi i dizi i dizi enkucuk dizi enkucuk yedek public int secmeliSiralama int dizi int enkucuk yedek for int i 0 i lt dizi Length 1 i enkucuk i for int j i 1 j lt dizi Length j if dizi j lt dizi enkucuk enkucuk j if enkucuk i yedek dizi i dizi i dizi enkucuk dizi enkucuk yedek return dizi Karmasiklik HesabiSecmeli siralama algoritmasinin zaman karmasikligi hesaplanirken yapilan karsilastirmalar ve yer degistirmeler dikkate alinir Secmeli siralama algoritmasi n textstyle n elemanli bir listede en kucuk eleman icin n 1 textstyle n 1 tane karsilastirma yapar ikinci en kucuk eleman icin n 2 textstyle n 2 tane karsilastirma yapar diger elemanlar icin karsilastirma sayisi n 3 textstyle n 3 n 4 textstyle n 4 2 1 0 seklinde azalarak devam eder Listedeki butun elemanlar icin yapilan karsilastirmalarin toplami n 1 n 2 n 3 n 4 2 1 0 n n 1 2 displaystyle n 1 n 2 n 3 n 4 2 1 0 n n 1 2 yapar Her bir eleman icin bir kez yer degistirme yapilir tum liste icin toplam n textstyle n tane yer degistirme islemi yapilir Hesaplamalar sonucunda elde edilen n n n 1 2 displaystyle n n n 1 2 degerlerinin asimptotik ust siniri O n2 textstyle O n 2 degerini verir Secmeli siralama algoritmasi listenin en kucuk elemaninin nerede oldugunu bilmedigi ve her bir eleman icin tum elemanlarla karsilastirma yaptigi icin liste icindeki elemanlarin rastgele siralanmis ya da esit elemanlardan olusmasini dikkate almaz bu sebeple secmeli siralama algoritmasi her durumda O n2 textstyle O n 2 karmasikligiyla calisir Yukaridaki sekil 6 elemanli icerigi karisik olarak verilmis bir bir sayi dizisinin Secmeli Siralama algoritmasi kullanilarak nasil kucukten buyuge dogru siralandigini gostermektedir 1 adimda dizinin ilk elemani 6 alinir Bu eleman diger 5 eleman ile karsilastirilir Eger bulunan eleman 1 ilk elemandan kucukse 1 elman ile yer degistirilir 2 adimda dizinin ikinci elemani 3 alinir Bu eleman kalan 4 eleman ile karsilastirilir Eger bulunan eleman 2 ikinci elemandan kucukse 2 eleman ile yer degistirilir ve bu islem dizi sonuna kadar devam eder Boylelikle dizi kucukten buyuge siralanmis olur Diger Siralama AlgoritmalariHizli Siralama Birlestirmeli Siralama Kabarcik Siralamasi Kokteyl Siralamasi Tarak SiralamasiKaynakca Robert Sedgewick Kevin Wayne Algorithms 4th Edition Addison Wesley 2011 chapter 2 p 248 Dis baglantilarSelection Sort Demo7 Mart 2008 tarihinde Wayback Machine sitesinde Selection Sort Demo olu kirik baglanti Pointers to C Program Selection Sort12 Mart 2008 tarihinde Wayback Machine sitesinde