选择排序
选择排序和冒泡排序相比.少了一些交换,冒泡排序是发现有小的就换,选择排序和每个元素比较确定最小的菜交换位置
时间复杂度:O[n2]
性能优于冒泡排序
稳定的排序算法
public static void main(String[] args) {
int[]arr={4,6,3,2,8,6,9};
selectionSort(arr);
for(int i:arr){
System.out.print(i+",");
}
}
/**
* 简单选择排序
* 时间复杂度:O[n*n]
* 交换的次数大大减少,性能略优于冒泡排序
* @param arr
*/
public static void selectionSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
int min=i;//min存储最小元素的角标
for(int j=i+1;j<arr.length;j++){
if(arr[min]>arr[j]){
min=j;//发现有比最小元素小的元素时,将此元素的角标存在min中
}
}
if(min!=i){//判断当前arr[i]是否是最小元素,不是的话和最小元素交换位置
int a=arr[i];
arr[i]=arr[min];
arr[min]=a;
}
}
}