java简单选择排序实例

 更新时间:2021年08月26日 11:46:17   作者:五岁i  
这篇文章主要为大家详细介绍了java简单选择排序实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

一、基本概念

每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。

二、实现思路

从待排序序列中,找到关键字最小的元素;
如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;
从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。

三、代码实现

public class SelectionSort {

 public static void selectionSort(int[] list){
  //需要遍历获得最小值的次数
  if (1>=list.length)return;
  for (int i=0;i<list.length-1;i++){
   int temp=0;
   int index=i;  //选择当前值为最小值索引
   for (int j=i+1;j<list.length;j++){
    if (list[index]>list[j]){
     index=j; //修改最小值索引
    }
   }
   
   temp=list[index];
   list[index]=list[i];
   list[i]=temp;
  }
 }
 public static void main(String[] args){
  int[] list={4,3,6,5,7,8,2,10,2,9};
  selectionSort(list);
  for (int num:list){
   System.out.print(num+" ");
  }
 }
}

四、时间复杂度

简单选择排序的比较次数与序列的初始排序无关。 假设待排序的序列有 N 个元素,则比较次数总是N (N - 1) / 2。

而移动次数与序列的初始排序有关。当序列正序时,移动次数最少,为 0 。

当序列反序时,移动次数最多,为3N (N - 1) /  2。

所以,综合以上,简单排序的时间复杂度为 O(N2)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java输出镂空金字塔实现案例

    java输出镂空金字塔实现案例

    小编最近接到领导安排,要求根据用户输入,打印出相应层数的镂空金字塔效果,本文分步骤通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2021-09-09
  • Spring Boot实现文件上传示例代码

    Spring Boot实现文件上传示例代码

    本篇文章主要介绍了Spring Boot实现文件上传示例代码,可以实现单文件和多文件的上传,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • Maven方式构建SpringBoot项目的实现步骤(图文)

    Maven方式构建SpringBoot项目的实现步骤(图文)

    Maven是一个强大的项目管理工具,可以帮助您轻松地构建和管理Spring Boot应用程序,本文主要介绍了Maven方式构建SpringBoot项目的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Java修改图片大小尺寸的简单实现

    Java修改图片大小尺寸的简单实现

    这篇文章主要介绍了Java修改图片大小尺寸的简单实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • SpringBoot @Retryable注解方式

    SpringBoot @Retryable注解方式

    这篇文章主要介绍了SpringBoot @Retryable注解方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java C++解决在排序数组中查找数字出现次数问题

    Java C++解决在排序数组中查找数字出现次数问题

    本文终于介绍了分别通过Java和C++实现统计一个数字在排序数组中出现的次数。文中详细介绍了实现思路,感兴趣的小伙伴可以跟随小编学习一下
    2021-12-12
  • Mybatis框架及原理实例分析

    Mybatis框架及原理实例分析

    这篇文章主要介绍了Mybatis框架及原理实例分析,需要的朋友可以参考下
    2017-08-08
  • java外部类与内部类的关系详解

    java外部类与内部类的关系详解

    本文详细讲解了java外部类与内部类的关系,用代码演示了外部类调用内部类的方法。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java项目的目录结构详解

    Java项目的目录结构详解

    本文主要介绍了Java项目的目录结构详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 详解APP微信支付(java后台_统一下单和回调)

    详解APP微信支付(java后台_统一下单和回调)

    这篇文章主要介绍了APP微信支付(java后台_统一下单和回调),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05

最新评论