排序算法(四)冒泡排序

冒泡排序(Bubble Sort),是一种最基础的交换排序。思想是依次比较两个相邻的元素,如果顺序相反则交换这两个元素的位置,重复以上的比较操作直至没有相邻元素需要交换。

复杂度分析

  • 最好情况:O(n)
  • 最坏情况:O(n²)
  • 平均:O(n²)

Java 代码实现

import java.util.Arrays;

public class BubbleSort {
    
    public static void sort(int[] data) {
        int temp = 0;
        for (int i = 0; i < data.length; i++) {
            for (int j = 0; j < data.length - i - 1; j++) {
                if (data[j] > data[j + 1]) {
                    temp = data[j];
                    data[j] = data[j + 1];
                    data[j + 1] = temp;
                }
            }
            System.out.println(Arrays.toString(data));
        }
    }

    public static void main(String[] args) {
        int[] data = {34, 24, 93, 1, 32, 98, 18, 39};
        sort(data);
    }
}

运行结果

[24, 34, 1, 32, 93, 18, 39, 98]
[24, 1, 32, 34, 18, 39, 93, 98]
[1, 24, 32, 18, 34, 39, 93, 98]
[1, 24, 18, 32, 34, 39, 93, 98]
[1, 18, 24, 32, 34, 39, 93, 98]
[1, 18, 24, 32, 34, 39, 93, 98]
[1, 18, 24, 32, 34, 39, 93, 98]
[1, 18, 24, 32, 34, 39, 93, 98]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •  自从上一篇简书发布到现在,差不多也有两个月了。小编原本五一假期打算整理下有关排序的一些算法,没成想放假第一天就因...
    ITsCLG阅读 3,833评论 0 1
  • 什么是冒泡排序? 摘自漫画算法: 冒泡排序的英文是bubble sort,它是一种基础的交换排序。 大家一定都喝过...
    花逝97阅读 2,999评论 0 2
  • 算法定义 冒泡排序是交换排序的一种,是一种较简单的排序算法。根据百科的定义,它重复地走访要排序的元素列,依次比较两...
    小鲨鱼FF阅读 1,287评论 0 0
  • 排序算法(八)冒泡排序   冒泡排序(Bubble-Sort)是一种最基础的交换排序。冒泡排序的原理:从第一个数开...
    ChooAcc阅读 3,490评论 0 2
  • 项目需要,自己上学的时候接触过一些算法,我记得当时算法那门考了系里最高分,98分,想着没什么用呢,谁知道这两天就用...
    爱尚开发阅读 5,813评论 0 3