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

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

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();
        }
    }

输出结果:
这里写图片描述

这里有张排序算法的比较表:
这里写图片描述

转载于:https://my.oschina.net/u/2770255/blog/679424

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值