前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >选择排序算法

选择排序算法

作者头像
逍遥壮士
发布2021-09-17 14:23:25
9340
发布2021-09-17 14:23:25
举报
文章被收录于专栏:技术趋势技术趋势

上文:冒泡排序算法


背景

一组整型无序数组,通过选择排序算法进行排序,从小到大排序或者从大到小。

代码语言:javascript
复制
/**
 * @author: csh
 * @Date: 2021-08-29 21:31
 * @Description:选择排序
 */
public class SelectionSort {
    //数据
    private static Integer[] intArr ={100,7,1,99,6,13,2,111};
    public static void main(String[] args) {
        for(int i = 0; i< intArr.length; i++){
            //最小值坐标
            int min=i;
            for(int j = i+1; j< intArr.length-1; j++){
                if(intArr[j]<intArr[min]){
                    min = j;
                }
            }
            //进行交换
            if(i!=min){
                //存放数据第i个的值
                int temp = intArr[i];
                intArr[i] = intArr[min];
                intArr[min] = temp;
                System.out.println("第:"+(i+1)+"次排序"+Arrays.toString(intArr));
            }

        }
    }
}

结果

代码语言:javascript
复制
第:1次排序[1, 7, 100, 99, 6, 13, 2, 111]
第:2次排序[1, 2, 100, 99, 6, 13, 7, 111]
第:3次排序[1, 2, 6, 99, 100, 13, 7, 111]
第:4次排序[1, 2, 6, 7, 100, 13, 99, 111]
第:5次排序[1, 2, 6, 7, 13, 100, 99, 111]
第:6次排序[1, 2, 6, 7, 13, 99, 100, 111]

通过上面数据可以得知,选择排序的实现原理是:

先获取第i位,然后通过子循环,判断当前位与接下来的数据匹配大小,如果小于则交换坐标到临时min中,直至子循环结束,然后再外循环进行交换数据。

时间复杂度和稳定性

由于遍历一次的复杂度为O(N),而遍历多少次取决于数组长度N-1,所以选择排序的时间复杂度为

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术趋势 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档