选择排序
1、时间复杂度
最好:O(n^2)
最坏:O(n^2)
2、空间复杂度
O(1)
3、不稳定
4、优点
交换次数一般少于冒泡
5、思路
每一轮选择,找出最大(小)元素,并把它交换到合适的位置
第1轮:6最大,放到末尾
package sort;
import java.util.Arrays;
public class SelectionSort {
public static void main(String[] args) {
int[] a = {6,5,4,3,2,1};
System.out.println(Arrays.toString(a));
sort(a);
System.out.println(Arrays.toString(a));
}
private static void swap(int[] a,int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
public static void sort(int[] a){
//1、选择轮数a.length-1
//2、交换的索引位置 初始a.length-1,每次递减
for(int right=a.length-1;right>0;right--){
//找出最大值
int max=right;
for(int i=0;i<right;i++){
if(a[i]>a[max]){
max=i;
}
}
if(max !=right) {
swap(a, max, right);
}
}
}
}