它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[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)
转载请注明原文地址: https://ju.6miu.com/read-15851.html