【Java】使用 Java 语言实现一个冒泡排序

这篇具有很好参考价值的文章主要介绍了【Java】使用 Java 语言实现一个冒泡排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是全栈小5,欢迎阅读小5的系列文章。
这是《Java》系列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

前言

上一篇文章已经学习了,如何使用IDE集成开发工具编写Java代码,并输出了一段Hello World的代码。
本篇文章将通过IDE使用 Java 语言实现一个冒泡排序。

冒泡排序介绍

冒泡排序也是一种简单直观的排序算法。
冒泡排序的基本思想是多次遍历要排序的数组,每次比较相邻的元素,如果顺序不对就交换它们的位置,一次遍历会将一个最大(或最小)的元素"冒泡"到数组的末尾(或开头)。
通过多次遍历,直到没有任何元素需要交换,整个数组就排序完成了。

通俗理解

当你需要对一组数字进行排序时,冒泡排序就像是在一个装有很多颜色不同的气泡的水槽里,不断地把气泡按照大小顺序排列。
在这个简单的排序算法中,我们会从数组的开头开始,比较相邻的两个数字,如果前一个数字比后一个数字大,就把它们交换位置。
这样,每一轮比较,都会让一个最大的数字“冒泡”到当前尚未排序的部分的末尾。
举个例子,假设我们有一组数字:3, 38, 5, 44, 15, 47, 36, 26, 27, 2, 46, 4, 19, 50, 48。

下面是冒泡排序的执行过程:
1.第一轮比较后,最大的数字 50 被冒泡到了数组末尾,数组变为:3, 5, 38, 15, 44, 36, 26, 27, 2, 46, 4, 19, 47, 48, 50

2.第二轮比较后,第二大的数字 48 被冒泡到了倒数第二的位置,数组变为:3, 5, 15, 38, 36, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50

3.经过多轮比较和交换后,所有数字按照从小到大的顺序排列完成。

代码实现

冒泡排序的 Java 代码

public class BubbleSortExample {

    public static void main(String[] args) {
        int[] array = {3, 38, 5, 44, 15, 47, 36, 26, 27, 2, 46, 4, 19, 50, 48};

        System.out.println("排序前数组:");
        printArray(array);

        bubbleSort(array);

        System.out.println("\n排序后数组:");
        printArray(array);
    }

    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    // 交换 arr[j] 和 arr[j+1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

效果
【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

动图演示

【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

冒泡降序排序

冒泡排序的默认排序方式是升序排序。
在冒泡排序算法中,数组中相邻的元素会进行比较,如果顺序不对则进行交换,每一轮排序都会将当前最大(或最小)的元素放到正确的位置上,最终实现整个数组的升序排序。
如果要将冒泡排序改为降序排序,只需在比较大小的地方做相应修改即可,如将大于号(>)改为小于号(<)

public class BubbleSortExample {

    public static void main(String[] args) {
        int[] array = {3, 38, 5, 44, 15, 47, 36, 26, 27, 2, 46, 4, 19, 50, 48};

        System.out.println("排序前数组:");
        printArray(array);

        bubbleSort(array);

        System.out.println("\n排序后数组:");
        printArray(array);
    }

    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (arr[j] < arr[j + 1]) {  // 修改此处实现降序排序
                    // 交换 arr[j] 和 arr[j+1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    public static void printArray(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

每日小技巧

快速搜索

在树状图中快速搜索
在所有树状图中都可以执行快速搜索,例如,在项目工具窗口中。开始输入,然后很快就能找到所需条目。
【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

预览搜索结果

您可以使用在文件中查找对话框(Ctrl+Shift+F)得预览区域,不必推出对话框就能执行快速搜索。预览对话框可以显示前100条结果
【Java】使用 Java 语言实现一个冒泡排序,Java,java,排序算法,算法

常见排序算法

以下是 Java 中常见的几种排序算法及简单描述:
1.冒泡排序(Bubble Sort)

  • 算法思想:通过交换相邻的元素进行比较和排序,每一轮将未排序部分中最大(或最小)的元素沉到底部。
  • 时间复杂度:平均情况和最坏情况下的时间复杂度均为 O(n^2)。
  • 适用场景:适用于数据量较小的情况。

2.选择排序(Selection Sort)

  • 算法思想:每一次遍历找到未排序部分中的最小(或最大)元素,放到已排序部分的末尾。
  • 时间复杂度:平均情况和最坏情况下的时间复杂度均为 O(n^2)。
  • 适用场景:适用于数据量较小的情况。

3.插入排序(Insertion Sort)

  • 算法思想:将数组分为已排序部分和未排序部分,依次将未排序部分的元素插入到已排序部分的合适位置。
  • 时间复杂度:平均情况和最坏情况下的时间复杂度均为 O(n^2)。
  • 适用场景:适用于部分有序的情况,数据量不大的情况。

4.快速排序(Quick Sort)

  • 算法思想:通过选择一个基准元素,将数组分为比基准小和比基准大的两部分,递归地对两部分进行排序。
  • 时间复杂度:平均情况下的时间复杂度为 O(nlogn),最坏情况下为 O(n^2)。
  • 适用场景:适用于大规模数据的排序,性能较好。

5.归并排序(Merge Sort)

  • 算法思想:将数组递归地分成两部分,分别排序后合并,最终得到有序数组。
  • 时间复杂度:最坏情况下的时间复杂度为 O(nlogn)。
  • 适用场景:适用于对链表以及数组等数据结构进行排序。

文章推荐

【Java】使用 Java 语言实现一个冒泡排序

【Java】学习一门开发语言,从TA的Hello World开始

【Java】IDEA集成开发环境工具切换JDK和设置环境变量

【Java】IDE集成开发环境工具IntelliJ安装和使用

【Java】十年老司机转开发语言,新小白从学习路线图开始

【Java】后端开发语言Java和C#,两者对比注解和属性的区别以及作用

温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。文章来源地址https://www.toymoban.com/news/detail-842303.html

到了这里,关于【Java】使用 Java 语言实现一个冒泡排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【排序算法】C语言实现选择排序与冒泡排序

    这里是阿辉算法与数据结构专栏的第一篇文章,咱们就从排序算法开始讲起,排序算法有很多大致分为两类:基于比较的排序和非比较的排序 基于比较的排序:冒泡、选择、插入、希尔、堆、归并、随机快排 非比较的排序:桶排序 以上的排序算法阿辉都会讲到,今天阿辉主

    2024年02月04日
    浏览(43)
  • (四)Java算法:冒泡排序

       冒泡排序 (Bubble Sort),是一种计算机科学领域的较简单的排序算法。它的工作原理是:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果不是指定顺序(比如从小达到)就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也

    2024年02月04日
    浏览(90)
  • Go 语言实现冒泡排序算法的简单示例

    以下是使用 Go 语言实现冒泡排序算法的简单示例: 在这个例子中, bubbleSort 函数接收一个整数切片,对切片中的元素进行冒泡排序。在 main 函数中,我们定义了一个示例数组,调用 bubbleSort 函数对其进行排序,并输出结果。 注意,冒泡排序算法的时间复杂度为 O(n^2),因此对

    2024年01月23日
    浏览(46)
  • Java-三个算法冒泡-选择排序,二分查找

    Java算法: 冒泡排序; 解析:将前后两个数对比,将大的数(或小的)调换至后面,每轮将对比过程中的最大(或最小)数,调到最后面。每轮对比数减一;初始对比数为数组长度-1. 选择排序: 解析:选择第一个数依次与其他元素对比,数值小的或(大的)交换位置至前方(

    2024年02月11日
    浏览(41)
  • 【C语言】解析C语言实现排序的算法(冒泡排序、插入排序、选择排序、快速排序、归并排序)

    本博客主要围绕五种常见的排序算法展开讨论,包括选择排序、快速排序、归并排序、冒泡排序和插入排序。针对每种算法,我对其思想、特点、时间复杂度、稳定性以及优缺点进行了详细解释和比较。 冒泡排序算法是一种简单且常用的排序算法。它通过重复地交换相邻的元

    2024年02月13日
    浏览(42)
  • Java实现:选择排序、冒泡排序、插入排序

    本文我们将使用Java编程语言实现经典的选择排序、冒泡排序和插入排序算法,并用对数器进行测试。 选择排序的基本思想是:遍历数组,每次找到数组中最小的元素,将其放到数组的前端。接着,在剩余的元素中继续寻找最小的元素,将其放在已找到的最小元素之后。重复

    2024年02月02日
    浏览(35)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序,堆排序】超详细~~

    目录 冒泡排序(BubbleSort): 代码详解:  冒泡排序的优化:  选择排序(SelectSort): 代码详解:  插入排序(InsertSort): 代码详解:  希尔排序(ShellSort):  法一(交换法)代码详解:  法二(移位法--插入排序的优化)代码详解: 快速排序(QuickSort):  代码详解:  归并排

    2024年02月20日
    浏览(48)
  • Java 语言实现选择排序算法

    【引言】 选择排序算法是一种简单但有效的排序算法。它的原理是每次从未排序的元素中选择最小(或最大)的元素,放在已排序的末尾(或开头),逐渐形成有序序列。本文将使用Java语言实现选择排序算法,并详细讲解其思想和代码实现。 【算法思想】 选择排序的核心思

    2024年02月11日
    浏览(55)
  • Java 语言实现归并排序算法

    【引言】 归并排序算法是一种高效且稳定的排序算法。它采用分治法的思想,将数组反复分割成两个子数组,直到每个子数组只有一个元素。然后将这些子数组逐个合并,最终得到排序完毕的数组。本文将使用Java语言实现归并排序算法,并详细讲解其核心思想和代码实现。

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包