它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。
public static int[] selectionSort(int[] A, int n) {
int i,j,minIndex;
for(i=0; i<n; i++){
minIndex = i;
for(j=i+1; j<n; j++){
if (A[j]<A[minIndex]){
minIndex = j;
}
}
swap(A,i,minIndex);
}
return A;
}
private static void swap(int[] array ,int first ,int second){
int temp;
temp = array[first];
array[first] = array[second];
array[second] = temp;
}
选择排序的平均复杂度为O(N^2)