Bu algoritmada dizinin bir ucundan başlanır; bu başında veya sonundan olabilir.Ör; dizinin başından başlandığı ve küçükten büyüğe sıralama yapılacağı barsayılırsa algoritmanın davranışı şöyle olur : Önce dizinin ilk elemanı alınır ve daha sonra küme içerisindeki kalan elemanların en küçüğü aranır; bulunduğu zaman ilk eleman ile karşılıklı yer değiştirilir ; daha sonra dizinin ikinci elemanı alınır ve kalan elemanlar arasında ikinci en küçük eleman aranır ve ikinci elemanla bulunan ikinci en küçk eleman yer değiştirilir ve dizinin son elemanına kadar tekrarlanırsa dizi sıralanmış olur.
#include<stdio.h>
#include<stdlib.h>void selectionSort(int arr[],int n){
int i,j,min,temp;
for(i=0;i<n-1;i++){
min=i;
for(j=i+1;j<n;j++){
if(arr[min]>arr[j])
min = j;
}
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
int main(){
int dizi[]={2,1,5,4,9,7,0};
int uzunluk = sizeof(dizi) / sizeof(dizi[0]);
selectionSort(dizi,uzunluk);
for(int i = 0;i<uzunluk;i++){
printf("%d \t",dizi[i]);
}
return 0;
}