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 Map.Entry的使用示例

    java Map.Entry的使用示例

    Map.Entry是Java中Map接口的嵌套接口,它提供了获取键和值的方法及遍历和操作Map的键值对,本文就来详细的介绍一下,感兴趣的可以了解一下
    2024-11-11
  • JavaWeb实现压缩多个文件并下载实例详解

    JavaWeb实现压缩多个文件并下载实例详解

    本文通过实例代码给大家讲解了javaweb实现压缩多个文件并下载功能,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • JAVA SFTP文件上传、下载及批量下载实例

    JAVA SFTP文件上传、下载及批量下载实例

    本篇文章主要介绍了JAVA SFTP文件上传、下载及批量下载实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 解决springboot自定义配置Boolean属性不能生效的问题

    解决springboot自定义配置Boolean属性不能生效的问题

    这篇文章主要介绍了解决springboot自定义配置Boolean属性不能生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java二分查找算法实例详解

    Java二分查找算法实例详解

    在本篇文章里小编给大家分享总结的是一篇关于Java二分查找算法实例详解内容,对此有兴趣的朋友们可以跟着学习下。
    2022-11-11
  • SpringBoot @Autowired注入为空的情况解读

    SpringBoot @Autowired注入为空的情况解读

    这篇文章主要介绍了SpringBoot @Autowired注入为空的情况解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java8中方便又实用的Map函数总结

    Java8中方便又实用的Map函数总结

    java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,快跟随小编一起来看看吧
    2022-11-11
  • jbuilder2006连接sqlserver2000的方法

    jbuilder2006连接sqlserver2000的方法

    xp jbuiler2006 连接SQL SERVER2000的问题
    2008-10-10
  • MyBatis开发Dao层的两种方式实现(原始Dao层开发)

    MyBatis开发Dao层的两种方式实现(原始Dao层开发)

    这篇文章主要介绍了MyBatis开发Dao层的两种方式实现(原始Dao层开发),并对数据库进行增删查改,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Spring Boot自动配置源码实例解析

    Spring Boot自动配置源码实例解析

    Spring Boot作为Java领域最为流行的快速开发框架之一,其核心特性之一就是其强大的自动配置机制,下面这篇文章主要给大家介绍了关于Spring Boot自动配置源码的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08

最新评论