分享

Java程序员必学的8大排序算法之冒泡排序

 太极混元天尊 2018-04-13


之前有介绍过插入排序,详细内容可以点击上方传送门,今天再给大家介绍一种排序——冒泡排序。

1
冒泡排序简介

冒泡排序是所有排序算法中最简单、最基本的一种。冒泡排序算法的核心思路就是交换排序,通过相邻数据的比较和交换来达到排序的目的。

2
冒泡排序的运作过程

内冒泡排序的运作如下:(从后往前)

(1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。

(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

(3)针对所有的元素重复以上的步骤,除了最后一个。

(4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

3
冒泡排序的实例代码

public class Test {
static final int SIZE = 10;
public static void bubbleSort(int[] a) {
  int temp;
  for (int i = 1; i < a.length;="" i++)="">
    for (int j = 0; j < a.length="" -="" i;="" j++)="">
      if (a[j] > a[j + 1]) {      //将相邻两个数进行比较,较大的数往后冒泡
        //交换相邻两个数
        temp = a[j];
        a[j] = a[j+1];
        a[j+1] = temp;
      }
    }
    System.out.print('第' + i + '步排序结果:');  //输出每步排序的结果
    for (int k = 0; k < a.length;="" k++)="">
      System.out.print(' ' + a[k]);      //输出  
    }
    System.out.print('\n');
  }
}
public static void main(String[] args) {
  int[] arr = new int[SIZE];
  int i;
 
  for (i = 0; i < size;="" i++)="">
    arr[i] = (int)(100 + Math.random()*(100+1));//初始化一个数组进行排序
  }
  System.out.print('排序前的数组为:\n');        //输出排序前的数组
  for (i = 0; i < size;="" i++)="">
    System.out.print(arr[i] + ' ');
  }
  System.out.print('\n');
  bubbleSort(arr);    //排序操作
  System.out.print('排序后的数组为:\n');
  for (i = 0; i < size;="" i++)="">
    System.out.print(arr[i] + ' ');        //输出排序后的数组
  }
  System.out.print('\n');
}
}


4
运行结果如下:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多