Java数据结构及算法实例:选择排序 Selection Sort

 更新时间:2015年06月20日 11:20:33   投稿:junjie  
这篇文章主要介绍了Java数据结构及算法实例:选择排序 Selection Sort,本文直接给出实现代码,代码中包含详细注释,需要的朋友可以参考下
/** 
 * 选择排序的思想: 
 * 每次从待排序列中找到最小的元素, 
 * 然后将其放到待排的序列的最左边,直到所有元素有序 
 *  
 * 选择排序改进了冒泡排序,将交换次数从O(N^2)减少到O(N) 
 * 不过比较次数还是O(N) 
 */ 
package al; 
public class SelectSort { 
   
  public static void main(String[] args) { 
     
    SelectSort selectSort = new SelectSort(); 
    int[] elements = { 14, 77, 21, 9, 10, 50, 43, 14 }; 
    // sort the array 
    selectSort.sort(elements); 
    // print the sorted array 
    for (int i = 0; i < elements.length; i++) { 
      System.out.print(elements[i]); 
      System.out.print(" "); 
    } 
  } 
   
  /** 
   * @author 
   * @param array 待排数组 
   */ 
  public void sort(int[] array) { 
    // min to save the minimum element for each round 
    int min, tmp; 
     
    for(int i=0; i<array.length; i++) { 
      min = i; 
      // search for the minimum element 
      for(int j=i; j<array.length; j++) { 
        if(array[j] < array[min]) { 
          min = j; 
        }         
      } 
      // swap minimum element 
      tmp = array[i]; 
      array[i] = array[min]; 
      array[min] = tmp;       
    } 
  } 
} 

相关文章

  • 详解Spring Security的formLogin登录认证模式

    详解Spring Security的formLogin登录认证模式

    对于一个完整的应用系统,与登录验证相关的页面都是高度定制化的,非常美观而且提供多种登录方式。这就需要Spring Security支持我们自己定制登录页面,也就是本文给大家介绍的formLogin模式登录认证模式,感兴趣的朋友跟随小编一起看看吧
    2019-11-11
  • 详解如何在Spring Boot启动后执行指定代码

    详解如何在Spring Boot启动后执行指定代码

    这篇文章主要介绍了在Spring Boot启动后执行指定代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • ActiveMQ消息队列技术融合Spring过程解析

    ActiveMQ消息队列技术融合Spring过程解析

    这篇文章主要介绍了ActiveMQ消息队列技术融合Spring过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 在Spring中如何使用动态代理?

    在Spring中如何使用动态代理?

    上篇文章记录自定义切面,下边记录使用注解来编写自定义切面,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java超详细讲解抽象类的原理与用法

    Java超详细讲解抽象类的原理与用法

    对于面向对象编程来说,抽象是它的一大特征之一,在Java中可以通过两种形式来体现OOP的抽象:接口和抽象类,下面这篇文章主要给大家介绍了关于Java抽象类相关资料,需要的朋友可以参考下
    2022-05-05
  • java实体对象与Map之间的转换工具类代码实例

    java实体对象与Map之间的转换工具类代码实例

    这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • spring中通过ApplicationContext getBean获取注入对象的方法实例

    spring中通过ApplicationContext getBean获取注入对象的方法实例

    今天小编就为大家分享一篇关于spring中通过ApplicationContext getBean获取注入对象的方法实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • JAVA微信扫码支付模式二线上支付功能实现以及回调

    JAVA微信扫码支付模式二线上支付功能实现以及回调

    本篇文章主要介绍了JAVA微信扫码支付模式二线上支付功能实现以及回调,这里整理了详细的代码,有需要的小伙伴可以参考下。
    2016-11-11
  • SpringBoot整合Flink CDC实现实时追踪mysql数据变动

    SpringBoot整合Flink CDC实现实时追踪mysql数据变动

    我们将整合Spring Boot和Apache Flink CDC(Change Data Capture)来实现实时数据追踪,下面是一个基本的实践流程代码,包括搭建Spring Boot项目、整合Flink CDC以及实现数据变动的实时追踪,需要的朋友可以参考下
    2024-07-07
  • Java关于BeabUtils.copyproperties的用法

    Java关于BeabUtils.copyproperties的用法

    这篇文章主要介绍了Java关于BeabUtils.copyproperties的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08

最新评论