查找排序

查找排序算法:

第一次选择出一个最小(大)的元素放在第0个位置。依次放在第1,2,3...位置,即选择一个元素,放在有序的位置上,相对于冒泡排序减少了移动次数

一趟下来之后会筛选出最大(小)的元素,剩下n-1个元素,
然后再在这些元素里找到次大(小)的元素,依次类推,直到只剩下一个元素,所以外层循环0 <= i < n-1。
内层循环 j 初始值为外层循环的 i ,最大值为 n-1。

内层循环的逻辑:初始用min保存  i,然后将min对应元素与后面所有元素进行比较,如果对应值比min的大(小),则 min 与 j 交换值,要始终保证min对应的元素是最小。


    public void sort(int[] param) {
        if (param != null) {
            int min = 0;
            int length = param.length;
            for (int i = 0; i < length - 1; i++) {
                min = i;
                for (int j = i + 1; j < length; j++) {
                    if (param[j] < param[min]) {
                        min = j;
                    }
                }
                swap(min,i);
            }
        }
    }
    public void swap(int before, int after){
        int temp = param[before];
        param[before] = param[after];
        param[after] = temp;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值