稳定性:unstable sort
空间:In-place sort
最优复杂度:O(n^2)
最差复杂度:O(n^2)
伪代码:
Selection_Sort(A)
{
for i=1 to n-1
min = i;
for j=i+1 to n
if A[min] > A[j]
min = j;
swap A[min] <-> A[i]
}
Java代码:
import java.util.Arrays;
public class Main {
public static void main(String[] args){
Main m = new Main();
int[] A = {1,2,3,5,4,7,9,1,2,5,3,2,1};
m.selectionSort(A);
System.out.print(Arrays.toString(A));
//输出:[1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 7, 9]
}
public void selectionSort(int[] A){
for(int i = 0; i < A.length - 1; ++i){
int min = i;
for(int j = i+1; j < A.length; ++j){
if(A[min] > A[j]){
min = j;
}
}
int temp = A[min];
A[min] = A[i];
A[i] = temp;
}
}
}