欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-13 10:03:52
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]

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