3 Ocak 2011 Pazartesi

Selection Sort(Seçmeli Sıralama)

Selection Sort(Seçmeli Sıralama) algoritmasını anlatmaya çalışacağım.

Selection Sort algoritması; sıralı olmayan dizi içinden ilk elemanı, dizinin en küçüğü kabul eder ve her iterasyonda dizinin diğer elemanlarıyla karşılaştırma yapar. Böylelikle dizinin en küçük elemanı bulunur ve ilk elemanla yer değiştirir. Daha sonra ikinci eleman ele alınır, yine aynı şekilde bu eleman dizinin en küçük elemanı kabul edilir ve her iterasyonda dizinin diğer elemanlarıyla karşılaştırılarak, kalan dizide en küçük eleman bulunmuş olur.Bulunan sayı ikinci elemanla yer değiştirir. Bu döngü dizinin sonuna dek devam eder. Böylece dizi sıralanmış olur.

Örnek verecek olursak:
En basitinden dizimizin ilk hali şu şekil olsun.
8-12-10-4-11
1.iterasyon: 4-12-10-8-11 //4 ile 8 yer değiştirdi
2.iterasyon: 4-8-10-12-11 //8 ile 12 yer değiştirdi
3.iterasyon: 4-8-10-12-11 //10 yer değiştirmedi
4.iterasyon: 4-8-10-11-12 //11 ile 12 yer değiştirdi


Bu algoritmayı java ile kodlayacak olursak:

public void selectionSort(int[] arr) { 
int i, j, minIndex, tmp;       
int n = arr.length;       
for (i = 0; i < n - 1; i++) {   
minIndex = i;               
for (j = i + 1; j < n; j++)
if (arr[j] < arr[minIndex])
minIndex = j;
if (minIndex != i) {
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
}

0 yorum:

Yorum Gönder