算法分析
最佳情况:T(n) = o(n²)最差情况:T(n)= o(n²)平均情况:T(n)= o(n²)
public class 选择排序 {
public static void main(String[] args) {
int[] arr=new int[]{2,6,1,8,9,12,3};
selectionSort(arr);
for (int m : arr) {
System.out.print(m+" ");
}
}
public static int[] selectionSort(int[] arr){
int a=arr.length;
if(a==0||a==1){
return arr;
}
for(int i=0;i<a-1;i++){
int minIndex=i;//先把最小下标定为0,也就是定最小值为第一个
for(int j=i+1;j<a;j++){
if(arr[minIndex]>arr[j]){
minIndex=j;
}
}
if(minIndex!=i){
int temp=arr[minIndex];
arr[minIndex]=arr[i];
arr[i]=temp;
}
}
return arr;
}
}
由此看出,选择算法的排序情况是很稳定的,不管输入什么样的数据都是一样的时间复杂度。