选择排序类似于冒泡,但是不要混淆了。两者虽然最坏时间效率相同,但是在实际使用中,选择排序更快。
/**
*选择排序思想与冒泡很像,但是区别在于选择排序是记录最大值的下标,然后在外层交换。两者的最坏时间效率都是O(N^2)
*但是相对来说,在平时使用中,选择排序的效率高于冒泡排序
*/
public static void selectSort(int arr[]) {
int length=arr.length;
int index,temp;
for(int i=1;i<length;i++) {//比较轮数
index=0;
for(int j=0;j<=length-i;j++) {//每一轮少比较一次
if(arr[index]<arr[j]) {
index=j;
}
}
//选择排序在外层交换
temp=arr[length-i];
arr[length-i]=arr[index];
arr[index]=temp;
}
}