最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Java語言實現(xiàn)一個冒泡排序

 更新時間:2024年03月24日 14:09:51   作者:全棧小5  
冒泡排序也是一種簡單直觀的排序算法,基本思想是多次遍歷要排序的數(shù)組,每次比較相鄰的元素,如果順序不對就交換它們的位置,本篇文章將通過IDE使用 Java 語言實現(xiàn)一個冒泡排序,需要的朋友可以參考下

前言

本篇文章將通過IDE使用 Java 語言實現(xiàn)一個冒泡排序。

冒泡排序介紹

冒泡排序也是一種簡單直觀的排序算法。

冒泡排序的基本思想是多次遍歷要排序的數(shù)組,每次比較相鄰的元素,如果順序不對就交換它們的位置,一次遍歷會將一個最大(或最小)的元素"冒泡"到數(shù)組的末尾(或開頭)。

通過多次遍歷,直到?jīng)]有任何元素需要交換,整個數(shù)組就排序完成了。

通俗理解

當你需要對一組數(shù)字進行排序時,冒泡排序就像是在一個裝有很多顏色不同的氣泡的水槽里,不斷地把氣泡按照大小順序排列。

在這個簡單的排序算法中,我們會從數(shù)組的開頭開始,比較相鄰的兩個數(shù)字,如果前一個數(shù)字比后一個數(shù)字大,就把它們交換位置。

這樣,每一輪比較,都會讓一個最大的數(shù)字“冒泡”到當前尚未排序的部分的末尾。

舉個例子,假設我們有一組數(shù)字:3, 38, 5, 44, 15, 47, 36, 26, 27, 2, 46, 4, 19, 50, 48。

下面是冒泡排序的執(zhí)行過程:

1.第一輪比較后,最大的數(shù)字 50 被冒泡到了數(shù)組末尾,數(shù)組變?yōu)椋?, 5, 38, 15, 44, 36, 26, 27, 2, 46, 4, 19, 47, 48, 50

2.第二輪比較后,第二大的數(shù)字 48 被冒泡到了倒數(shù)第二的位置,數(shù)組變?yōu)椋?, 5, 15, 38, 36, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50

3.經(jīng)過多輪比較和交換后,所有數(shù)字按照從小到大的順序排列完成。

代碼實現(xiàn)

冒泡排序的 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("排序前數(shù)組:");
        printArray(array);

        bubbleSort(array);

        System.out.println("\n排序后數(shù)組:");
        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] + " ");
        }
    }
}

效果

在這里插入圖片描述

動圖演示

在這里插入圖片描述

冒泡降序排序

冒泡排序的默認排序方式是升序排序。

在冒泡排序算法中,數(shù)組中相鄰的元素會進行比較,如果順序不對則進行交換,每一輪排序都會將當前最大(或最?。┑脑胤诺秸_的位置上,最終實現(xiàn)整個數(shù)組的升序排序。

如果要將冒泡排序改為降序排序,只需在比較大小的地方做相應修改即可,如將大于號(>)改為小于號(<)

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("排序前數(shù)組:");
        printArray(array);

        bubbleSort(array);

        System.out.println("\n排序后數(shù)組:");
        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]) {  // 修改此處實現(xiàn)降序排序
                    // 交換 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] + " ");
        }
    }
}

在這里插入圖片描述

每日小技巧

快速搜索

在樹狀圖中快速搜索
在所有樹狀圖中都可以執(zhí)行快速搜索,例如,在項目工具窗口中。開始輸入,然后很快就能找到所需條目。

在這里插入圖片描述

預覽搜索結(jié)果

您可以使用在文件中查找對話框(Ctrl+Shift+F)得預覽區(qū)域,不必推出對話框就能執(zhí)行快速搜索。預覽對話框可以顯示前100條結(jié)果

在這里插入圖片描述

常見排序算法

以下是 Java 中常見的幾種排序算法及簡單描述:
1.冒泡排序(Bubble Sort)

  • 算法思想:通過交換相鄰的元素進行比較和排序,每一輪將未排序部分中最大(或最?。┑脑爻恋降撞?。
  • 時間復雜度:平均情況和最壞情況下的時間復雜度均為 O(n^2)。
  • 適用場景:適用于數(shù)據(jù)量較小的情況。

2.選擇排序(Selection Sort)

  • 算法思想:每一次遍歷找到未排序部分中的最?。ɑ蜃畲螅┰?,放到已排序部分的末尾。
  • 時間復雜度:平均情況和最壞情況下的時間復雜度均為 O(n^2)。
  • 適用場景:適用于數(shù)據(jù)量較小的情況。

3.插入排序(Insertion Sort)

  • 算法思想:將數(shù)組分為已排序部分和未排序部分,依次將未排序部分的元素插入到已排序部分的合適位置。
  • 時間復雜度:平均情況和最壞情況下的時間復雜度均為 O(n^2)。
  • 適用場景:適用于部分有序的情況,數(shù)據(jù)量不大的情況。

4.快速排序(Quick Sort)

  • 算法思想:通過選擇一個基準元素,將數(shù)組分為比基準小和比基準大的兩部分,遞歸地對兩部分進行排序。
  • 時間復雜度:平均情況下的時間復雜度為 O(nlogn),最壞情況下為 O(n^2)。
  • 適用場景:適用于大規(guī)模數(shù)據(jù)的排序,性能較好。

5.歸并排序(Merge Sort)

  • 算法思想:將數(shù)組遞歸地分成兩部分,分別排序后合并,;最終得到有序數(shù)組。
  • 時間復雜度:最壞情況下的時間復雜度為 O(nlogn)。
  • 適用場景:適用于對鏈表以及數(shù)組等數(shù)據(jù)結(jié)構進行排序。 

最后

到此這篇關于使用Java語言實現(xiàn)一個冒泡排序的文章就介紹到這了,更多相關Java實現(xiàn)冒泡排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java自定義線程池的原理簡介

    java自定義線程池的原理簡介

    這篇文章主要介紹了java自定義線程池的原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • servlet之ServletContext簡介_動力節(jié)點Java學院整理

    servlet之ServletContext簡介_動力節(jié)點Java學院整理

    這篇文章主要介紹了servlet之ServletContext簡介,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 深入了解final在java中的應用

    深入了解final在java中的應用

    談到final關鍵字,想必很多人都不陌生,在使用匿名內(nèi)部類的時候可能會經(jīng)常用到final關鍵字。另外,Java中的String類就是一個final類,那么今天我們就來了解final這個關鍵字的用法。
    2019-06-06
  • javaweb實現(xiàn)文件上傳小功能

    javaweb實現(xiàn)文件上傳小功能

    這篇文章主要為大家詳細介紹了javaweb實現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java異常處理UncaughtExceptionHandler使用實例代碼詳解

    Java異常處理UncaughtExceptionHandler使用實例代碼詳解

    當一個線程由于未捕獲異常即將終止時,Java虛擬機將使用thread . getuncaughtexceptionhandler()查詢線程的uncaughtException處理程序,并調(diào)用處理程序的uncaughtException方法,將線程和異常作為參數(shù)傳遞
    2023-03-03
  • 基于mybatis高級映射多對多查詢的實現(xiàn)

    基于mybatis高級映射多對多查詢的實現(xiàn)

    下面小編就為大家?guī)硪黄趍ybatis高級映射多對多查詢的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java類型通配符應用實戰(zhàn)分析

    Java類型通配符應用實戰(zhàn)分析

    這篇文章主要介紹了Java類型通配符應用實戰(zhàn),簡單分析了Java類型通配符概念、原理并結(jié)合實例形式給出了Java類型通配符相關使用技巧,需要的朋友可以參考下
    2019-07-07
  • java實現(xiàn)基于TCP協(xié)議網(wǎng)絡socket編程(C/S通信)

    java實現(xiàn)基于TCP協(xié)議網(wǎng)絡socket編程(C/S通信)

    這篇文章主要介紹了java實現(xiàn)基于TCP協(xié)議網(wǎng)絡socket編程(C/S通信),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Spring Boot 使用Druid詳解

    Spring Boot 使用Druid詳解

    本篇文章主要介紹了Spring Boot 使用Druid配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 舉例講解設計模式中的訪問者模式在Java編程中的運用

    舉例講解設計模式中的訪問者模式在Java編程中的運用

    這篇文章主要介紹了舉例講解設計模式中的訪問者模式在Java編程中的運用,訪問者模式是一種將算法與對象結(jié)構分離的軟件設計模式,需要的朋友可以參考下
    2016-05-05

最新評論

洪雅县| 勐海县| 吴川市| 松滋市| 忻城县| 五大连池市| 东至县| 乐陵市| 南川市| 汝州市| 晋中市| 汉寿县| 扎赉特旗| 扎赉特旗| 仁怀市| 右玉县| 乐昌市| 镇赉县| 井冈山市| 武威市| 措勤县| 东海县| 油尖旺区| 宁国市| 唐海县| 沧州市| 黑龙江省| 汕尾市| 黄山市| 平邑县| 宁国市| 杭锦后旗| 仙游县| 客服| 安新县| 古浪县| 齐齐哈尔市| 昌吉市| 三明市| 甘洛县| 满城县|