您当前的位置: 首页 >  算法

顧棟

暂无认证

  • 1浏览

    0关注

    227博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【重温基础算法】内部排序之冒泡排序法

顧棟 发布时间:2022-09-09 18:34:32 ,浏览量:1

内部排序之冒泡排序法

文章目录
  • 内部排序之冒泡排序法
    • 主要思想
    • 过程演示
    • JAVA代码
    • 算法分析
      • 时间复杂度
      • 空间复杂度
冒泡排序(Bubble Sort)也是一种简单快速的排序算法。它重复地遍历过要排序的数列,一次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

主要思想
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了本次遍历确定的最后一个值。
  4. 重复上面的步骤,直到没有任何一对数字需要比较。
过程演示

在这里插入图片描述

动图制作: 算法动画网址:https://visualgo.net/zh/sorting gif录屏软件:GifCam 下载地址:https://download.csdn.net/download/weixin_43820556/86512977

  1. 第1趟排序

    从数组下标0开始,不断与相邻的比较与交换,确定最大值9,并移动到了数组最后的位置

    第1次排序后: 6 7 3 1 5 2 4 8 9

  2. 第2趟排序

    从数组下标0开始,不断与相邻的比较与交换,确定最大值8,并移动到了数组最后的位置-1

    第2次排序后: 6 3 1 5 2 4 7 8 9

  3. 第3趟排序

    从数组下标0开始,不断与相邻的比较与交换,确定最大值7,并移动到了数组最后的位置-2 第3次排序后: 3 1 5 2 4 6 7 8 9

  4. 第4趟排序

    从数组下标0开始,不断与相邻的比较与交换,确定最大值6,并移动到了数组最后的位置-3

    第4次排序后: 1 3 2 4 5 6 7 8 9

  5. 第5趟排序

    从数组下标0开始,不断与相邻的比较与交换,确定最大值5,并移动到了数组最后的位置-4 第5次排序后: 1 2 3 4 5 6 7 8 9

  6. 此时数组已经完成了排序。从第6~8趟排序的排序其实可以忽略。

JAVA代码
package sort;

public class BubbleSort {
    public static void main(String[] args) {
        int[] o = {7, 6, 9, 3, 1, 5, 2, 4, 8};
        System.out.print("排序前: ");
        for (int t : o) {
            System.out.print(t);
            System.out.print(" ");
        }
        System.out.println();

        // 算法部分
        for (int i = 1; i             
关注
打赏
1663402667
查看更多评论
0.0607s