[JavaDS]选择排序

博客介绍了直接选择排序思想,即每次从待排序数据中选最小或最大元素放序列起始位置,直至排完。同时指出该排序虽易理解,但效率不佳,实际少用,还给出其时间复杂度为O(N^2)、空间复杂度为O(1),且不稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思想:

每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的
数据元素排完

注意:

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));
    }
}

输出结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值