算法学习笔记之冒泡排序算法

我们这里先介绍几种适用的比较少的数据时候,算法复杂度都是O(n2),介绍三种算法:
①冒泡排序算法
②选择排序算法
③插入排序算法
这篇介绍第一种:冒泡排序算法
冒泡排序算法通过多次比较和交换来实现排序,其排序流程如下:
1)对数组中的各数据,依次比较相邻两个元素的大小
2)如果前面的数据大于后面的数据,则交换这两个数据,经过一轮排序后,便把最大的数据排好了
3)再用相同的方法把剩下的数据逐个进行比较,最后便可按从小到大的顺序排好
算法学习笔记之冒泡排序算法_第1张图片
代码:

public static void bubbleSort(int a[]) {
        for (int i = 1; i < a.length; i++) {
            for (int j = 0; j < a.length-i; j++) {
                //交换
                if (a[j] > a[j+1]) {
                    int temp;
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
            //这是输出每一步排序的结果
            System.out.printf("第" + i + "次排序结果:");
            for (int i2 = 0; i2 < a.length; i2++) {
                System.out.printf(a[i2] + " ");
            }
            System.out.println();
        }
    }

输出结果:
算法学习笔记之冒泡排序算法_第2张图片

这里有张排序算法的比较表:
算法学习笔记之冒泡排序算法_第3张图片

你可能感兴趣的:(算法,冒泡排序)