The core idea of the selection sort is to choose the minimum/maximum element from the remaining elements in the array, and then put it to the end of the elements that you have already sorted.
The detail steps of this algorithm are as follows:
1. Traverse the element from first until the last but one.
Notice: We should finish the loop until the one before the last one, not the last one.
2. Choose the minimum/maximum element from the sub-array, which starts with the first element you haven't sorted until the last, and then put the minimum/maximum one to the end of the elements you have already sorted.
3. Loop next sub-array until the last.
Its time complexity is O(n2).
The following is the implementation of selection-sortby java.
public void selectionSort(){
int[] A = {4,5,3,2,7,5,8};
for(int i = 0; i < A.length - 1;i++){
int min = A[i];
int position = i;
for(int j = i + 1;j < A.length;j++){
if(min > A[j]){
min = A[j];
position = j;
}
}
A[position] = A[i];
A[i] = min;
}
}