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