思想:
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的
数据元素排完
注意:
1. 直接选择排序思考非常好理解,但是效率不是很好。实际中很少使用
2. 时间复杂度:O(N^2)
3. 空间复杂度:O(1)
4. 稳定性:不稳定
代码实现:
package i.DS.base;
import java.util.Arrays;
import java.util.Random;
//选择排序法
public class TestSelectSort {
public static void selectSort(int[] array){
for(int i=0;i<array.length;i++){
for(int j=i+1;j<array.length;j++){
if(array[j]<array[i]){
int tmp=array[i];
array[i]=array[j];
array[j]=tmp;
}
}
}
}
public static void main(String[] args) {
int array1[]=new int[20];
Random random=new Random();
for(int i=0;i<array1.length;i++){
array1[i]=random.nextInt(300)+1;
}
selectSort(array1);
System.out.println(Arrays.toString(array1));
}
}
输出结果: