zoukankan      html  css  js  c++  java
  • 排序——冒泡排序

     1 /*
     2  * int类型的数组对象
     3  * int[] arr = {9, 8, 10, 7, 6, 0, 11};
     4  * 经过冒泡排序对以上数组中的元素进行排序
     5  * 
     6  * 原始数据:9,8,10,7,6,0,11
     7  * 第一次循环:    第零位9跟第一位8进行比较,交换位置:8,9,10,7,6,0,11
     8  *             第一位9跟第二位10进行比较,位置不变:8,9,10,7,6,0,11
     9  *            第二位10跟第三位7进行比较,交换位置:8,9,7,10,6,0,11
    10  *            第三位10跟第四位6进行比较,交换位置:8,9,7,6,10,0,11
    11  *            第四位10跟第五位0进行比较,交换位置:8,9,7,6,0,10,11
    12  *            第五位10跟第六位11进行比较,位置不变:8,9,7,6,0,10,11
    13  *最大数11冒出
    14  *此时数据:8,9,7,6,0,10
    15  *第二次循环:    第零位8跟第一位9进行比较,位置不变:8,9,7,6,0,10
    16  *             第一位9跟第二位7进行比较,交换位置:8,7,9,6,0,10
    17  *            第二位9跟第三位6进行比较,交换位置:8,7,6,9,0,10
    18  *            第三位9跟第四位0进行比较,交换位置:8,7,6,0,9,10
    19  *            第四位9跟第五位10进行比较,位置不变:8,7,6,0,9,10
    20  *最大数10冒出
    21  *此时数据:8,7,6,0,9
    22  *第三次循环:    第零位8跟第一位7进行比较,交换位置:7,8,6,0,9
    23  *             第一位8跟第二位6进行比较,交换位置:7,6,8,0,9
    24  *            第二位8跟第三位0进行比较,交换位置:7,6,0,8,9
    25  *            第三位8跟第四位9进行比较,位置不变:7,6,0,8,9
    26  *最大数9冒出
    27  *此时数据:7,6,0,8
    28  *第四次循环:    第零位7跟第一位6进行比较,交换位置:6,7,0,8
    29  *             第一位7跟第二位0进行比较,交换位置:6,0,7,8
    30  *            第二位7跟第三位8进行比较,位置不变:6,0,7,8
    31  *最大数8冒出
    32  *此时数据:6,0,7
    33  *第五次循环:    第零位6跟第一位0进行比较,交换位置:0,6,7
    34  *             第一位6跟第二位7进行比较,位置不变:0,6,7
    35  * 最大数7冒出
    36  * 此时数据:0,6
    37  * 第六次循环:    第零位0跟第一位6进行比较,位置不变:0,6
    38  * 最大数6冒出
    39  */
    40 public class MaoPao {
    41     public static void main(String[] args) {
    42         // 定义要排序的int数组
    43         int[] arr = { 9, 8, 10, 7, 6, 0, 11 };
    44         // 计算循环的次数(可有可无)
    45         int count = 0;
    46         for (int i = arr.length - 1; i > 0; i--) {
    47             for (int j = 0; j < i; j++) {
    48                 count++;
    49                 if (arr[j] > arr[j + 1]) {
    50                     // 以下三行代码完成数据的交换
    51                     int temp;// 暂时存放
    52                     temp = arr[j];// 第一个数拿出来
    53                     arr[j] = arr[j + 1];// 第二个数放到第一个数的位置
    54                     arr[j + 1] = temp;// 第一个数放到第二个数的位置
    55                 }
    56             }
    57         }
    58         System.out.println("循环了" + count + "次。");
    59         for (int i = 0; i < arr.length; i++) {
    60             System.out.println(arr[i]);
    61         }
    62     }
    63 
    64 }

    最简单的排序算法。

  • 相关阅读:
    tomcat窗口修改显示名字
    Windows Server 2012 安装oracle11g
    oracle查看和修改session和最大连接数
    ORA-12518 TNS:监听程序无法分发客户机连接的解决办法
    Oracle数据导入导出imp/exp :未知的命令开头。。。忽略了剩余的行
    用Dev C++编写第一个C语言程序
    PAT 甲级 1045 Favorite Color Stripe (30 分)(思维dp,最长有序子序列)
    PAT 甲级 1043 Is It a Binary Search Tree (25 分)(链表建树前序后序遍历)*不会用链表建树 *看不懂题...
    PAT 甲级 1044 Shopping in Mars (25 分)(滑动窗口,尺取法,也可二分)
    数据库设计的基本步骤
  • 原文地址:https://www.cnblogs.com/HeSC980513/p/12929602.html
Copyright © 2011-2022 走看看