java 算法之冒泡排序实例详解

 更新时间:2017年07月30日 09:08:57   投稿:lqh  
这篇文章主要介绍了java 算法之冒泡排序实例详解的相关资料,冒泡排序,就是模仿泡泡从水中浮起跑到水面的过程需要的朋友可以参考下

java 算法之冒泡排序实例详解

无人不知无人不晓的冒泡排序,据说是模仿泡泡从水中浮起跑到水面的过程。

在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即: 每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。

来看一下代码:

package cn.songxinqiang.study.algorithm.sort;

import java.util.Arrays;

/**
 * 冒泡排序
 *
 * <p>
 * 众里寻她千百度, 蓦然回首, 那人却在灯火阑珊处.
 * </p>
 * 
 * @author 阿信sxq-2015年7月16日
 *
 */
public class BubbleSort {

  /**
   * 原理:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:
   * 每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
   *
   * @author 阿信sxq-2015年7月16日
   *
   * @param args
   */
  public static void main(String[] args) {
    int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62, 99, 98, 54, 56, 17,
        18, 23, 34, 15, 35, 25, 53, 51 };
    int temp = 0;
    for (int i = 0; i < a.length - 1; i++) {
      for (int j = 0; j < a.length - 1 - i; j++) {
        if (a[j] > a[j + 1]) {
          temp = a[j];
          a[j] = a[j + 1];
          a[j + 1] = temp;
        }
      }
    }

    System.out.println(Arrays.toString(a));

  }

}

输出为:

[4, 5, 12, 13, 15, 17, 18, 23, 25, 27, 34, 34, 35, 38, 49, 49, 51, 53, 54, 56, 62, 64, 65, 76, 78, 97, 98, 99]

以上就是关于冒泡排序的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java同步容器和并发容器详解

    Java同步容器和并发容器详解

    这篇文章主要介绍了Java同步容器和并发容器详解,容器是Java基础类库中使用频率最高的一部分,Java集合包中提供了大量的容器类来帮组我们简化开发,下面小编和大家来一起学习下吧
    2019-06-06
  • java中ThreadLocal的基本原理

    java中ThreadLocal的基本原理

    本文讲解了java中ThreadLocal的一些基本原理,文中关于ThreadLocal的原理讲解的非常详细,感兴趣的朋友一起看看吧
    2021-08-08
  • Java 实战项目锤炼之嘟嘟健身房管理系统的实现流程

    Java 实战项目锤炼之嘟嘟健身房管理系统的实现流程

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+jsp+mysql+maven实现一个健身房管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil

    兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil

    今天小编就为大家分享一篇关于兼容Spring Boot 1.x和2.x配置类参数绑定的工具类SpringBootBindUtil,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Springboot集成SSE实现单工通信消息推送流程详解

    Springboot集成SSE实现单工通信消息推送流程详解

    SSE简单的来说就是服务器主动向前端推送数据的一种技术,它是单向的,也就是说前端是不能向服务器发送数据的。SSE适用于消息推送,监控等只需要服务器推送数据的场景中,下面是使用Spring Boot来实现一个简单的模拟向前端推动进度数据,前端页面接受后展示进度条
    2022-11-11
  • Spring Boot中Reactor模型的基本概念和最佳实践

    Spring Boot中Reactor模型的基本概念和最佳实践

    Reactor模型是一种基于事件驱动和非阻塞IO的编程模型,用于处理并发和异步操作,本文将介绍Spring Boot中使用Reactor模型的基本概念和最佳实践,帮助读者更好地理解如何利用这一强大的工具来构建现代化的Java应用程序,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Spring Boot文件上传简单实例代码

    Spring Boot文件上传简单实例代码

    在本篇文章里小编给大家分享的是关于Spring Boot 文件上传简易教程以及相关知识点,需要的朋友们参考下。
    2019-08-08
  • idea配置tomcat,idea配置web下lib的包详解

    idea配置tomcat,idea配置web下lib的包详解

    这篇文章主要介绍了idea配置tomcat,idea配置web下lib的包,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Spring Security 实现用户名密码登录流程源码详解

    Spring Security 实现用户名密码登录流程源码详解

    在服务端的安全管理使用了Spring Security,用户登录成功之后,Spring Security帮你把用户信息保存在Session里,但是具体保存在哪里,要是不深究你可能就不知道,今天小编就带大家具体了解一下Spring Security实现用户名密码登录的流程
    2021-11-11
  • 详解Java编写并运行spark应用程序的方法

    详解Java编写并运行spark应用程序的方法

    这篇文章主要介绍了详解Java编写并运行spark应用程序的方法,内容详细,结合了作者实际工作中的问题进行具体分析,具有一定参考价值。
    2017-09-09

最新评论