package com.anuragkapur.sorting;
/**
* @author anuragkapur
*/
public class SelectionSort {
public void recursiveSort(int a[]) {
recursiveSort(a, 0);
}
private void recursiveSort(int a[], int start) {
if (a == null || start >= a.length) {
return;
}
int min = findIndexOfMin(a, start);
swap(a, start, min);
recursiveSort(a, start+1);
}
private void swap(int a[], int i1, int i2) {
int temp = a[i1];
a[i1] = a[i2];
a[i2] = temp;
}
private int findIndexOfMin(int a[], int start) {
int min = start;
for (int i = start+1; i < a.length; i++) {
if (a[i] < a[min])
min = i;
}
return min;
}
}