A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.Arrays;

  2. public class BubbleSort {

  3.         /**
  4.          * 冒泡排序: 相邻元素两两比较,大的往后放,第一次比较完后,最大元素出现在最大索引处。
  5.          */
  6.         public static void main(String[] args) {

  7.                 // 定义要排序的数组
  8.                 int[] arr = { 12, 45, 42, 0, -15, 99 };

  9.                 /*
  10.                  * 方式一: 冒泡排序法
  11.                  */
  12.                 //输出排序前数组
  13.                 System.out.println("排序前:");
  14.                 printArray(arr);

  15.                 // 调用排序功能
  16.                 bubSort(arr);
  17.                
  18.                 //输出排序后数组
  19.                 System.out.println("排序后:");
  20.                 printArray(arr);

  21.                 /*
  22.                  * 方式二:直接调用Arrays类的sort方法进行排序
  23.                  */
  24.                 //输出排序前数组
  25.                 System.out.println("排序前:");
  26.                 printArray(arr);

  27.                 // 调用排序算法
  28.                 Arrays.sort(arr);

  29.                 //输出排序后数组
  30.                 System.out.println("排序后:");
  31.                 printArray(arr);
  32.         }

  33.         // 冒泡排序代码实现
  34.         public static void bubSort(int[] arr) {

  35.                 // 外循环变量是冒泡比较的次数
  36.                 for (int i = 0; i < arr.length - 1; i++) {
  37.                         // 其中,arr.length-1 是为了防止越界,因为后面出现了j+1
  38.                         // arr.length-1-x 是每一次比较的次数在递减
  39.                         for (int j = 0; j < arr.length - 1 - i; j++) {
  40.                                
  41.                                 //如果前一个元素比后又一个元素大
  42.                                 if (arr[j] > arr[j + 1]) {
  43.                                         // 元素交换
  44.                                         int temp = arr[j];
  45.                                         arr[j] = arr[j + 1];
  46.                                         arr[j + 1] = temp;
  47.                                 }
  48.                         }
  49.                 }
  50.         }

  51.         // 遍历数组
  52.         public static void printArray(int[] arr) {
  53.                 //输出左括号
  54.                 System.out.print("[");
  55.                
  56.                 //遍历输出数组
  57.                 for (int x = 0; x < arr.length; x++) {
  58.                         //如果是最后一个元素,则补上又括号
  59.                         if (x == arr.length - 1) {
  60.                                 System.out.println(arr[x] + "]");
  61.                         }
  62.                         //如果不是则输出元素和“, ”
  63.                         else {
  64.                                 System.out.print(arr[x] + ", ");
  65.                         }
  66.                 }
  67.         }
  68. }
复制代码


原理图:

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

1 个回复

倒序浏览
楼主对冒泡排序理解的好什么呀,适合新手,学过的也能加深理解!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马