Java排序算法之选择排序代码实例

 更新时间:2023年11月14日 09:08:40   作者:哇哈哈水有点甜  
这篇文章主要介绍了Java排序算法之选择排序代码实例,从数组的第一个元素开始,每次遍历数组找出一个最小值放在最左侧,第二次从第二个元素开始,依次类推,直到起始元素为数组的倒数第二个元素时,直接和最后一个元素比较,较小值放左边,完成排序,需要的朋友可以参考下

Java排序算法之选择排序代码实例

排序原理:从数组的第一个元素开始,每次遍历数组找出一个最小值放在最左侧,第二次从第二个元素开始,依次类推,直到起始元素为数组的倒数第二个元素时,直接和最后一个元素比较,较小值放左边,完成排序

时间复杂度:O(N^2) 空间复杂度:O(1)

在这里插入图片描述

代码实现(java):

public static void main(String[] args) {
    int[] arr = {3,5,1,2,4,8,4};
    selectSort(arr);
    for (int i : arr) {
        System.out.println(i);
    }
}


public static void selectSort(int[] arr){
    //外层循环表示循环次数,一共需要长度-1次
    for (int i = 0; i < arr.length - 1; i++) {
        //定义一个变量表示本次循环中最新元素的下标,初始值为当次循环的第一个元素
        int minIndex =i;
        for (int j = i+1; j < arr.length; j++) {
            //如果有元素的值比下标为minIndex的值还小,将这个元素的下标赋值给minIndex
            if(arr[j]<arr[minIndex]){
                minIndex=j;
            }
        }
        //如果minIndex被修改过,不再是初始值,交换初始值和minIndex为下标的值
        if(minIndex!=i){
            int tmp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex]= tmp;
        }
    }
}

到此这篇关于Java排序算法之选择排序代码实例的文章就介绍到这了,更多相关Java选择排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 分享5个Java接口性能提升的通用技巧

    分享5个Java接口性能提升的通用技巧

    作为后端开发人员,我们总是在编写各种API。这些API在服务初期可能表现不错,但随着用户数量的增长,一开始响应很快的API越来越慢,这时候你就需要考虑如何优化你的API性能了。在这篇文章中,我总结了一些行之有效的API性能优化技巧,希望能给有需要的朋友一些帮助
    2023-01-01
  • MyBatis利用拦截器实现数据脱敏详解

    MyBatis利用拦截器实现数据脱敏详解

    现代网络环境中,敏感数据的处理是至关重要的,敏感数据包括个人身份信息、银行账号、手机号码等,所以本文主要为大家详细介绍了MyBatis如何利用拦截器实现数据脱敏,希望对大家有所帮助
    2023-11-11
  • Java安全 ysoserial CommonsCollections3示例分析

    Java安全 ysoserial CommonsCollections3示例分析

    这篇文章主要为大家介绍了Java安全 ysoserial CommonsCollections3示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 浅谈Java反射与代理

    浅谈Java反射与代理

    下面小编就为大家带来一篇浅谈Java反射与代理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Spring事物的传播特性详解

    Spring事物的传播特性详解

    这篇文章主要介绍了Spring事物的传播性详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • java生成图片进行套打功能

    java生成图片进行套打功能

    这篇文章主要为大家详细介绍了java生成图片进行套打功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • java简单列出文件夹下所有文件的方法

    java简单列出文件夹下所有文件的方法

    这篇文章主要介绍了java简单列出文件夹下所有文件的方法,涉及java针对文件夹遍历操作相关技巧,需要的朋友可以参考下
    2016-08-08
  • SpringData JPA快速上手之关联查询及JPQL语句书写详解

    SpringData JPA快速上手之关联查询及JPQL语句书写详解

    JPA都有SpringBoot的官方直接提供的starter,而Mybatis没有,直到SpringBoot 3才开始加入到官方模版中,这篇文章主要介绍了SpringData JPA快速上手,关联查询,JPQL语句书写的相关知识,感兴趣的朋友一起看看吧
    2023-09-09
  • SpringBoot监听Redis Key过期事件的几种方式

    SpringBoot监听Redis Key过期事件的几种方式

    本文介绍了使用Redis监听键过期来实现电商平台优惠券自动失效的解决方案,包括配置Redis、实现监听器、使用线程池优化以及进一步优化措施,需要的朋友可以参考下
    2026-03-03
  • 解决Java Redis删除HashMap中的key踩到的坑

    解决Java Redis删除HashMap中的key踩到的坑

    这篇文章主要介绍了解决Java Redis删除HashMap中的key踩到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02

最新评论