大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java冒泡排序法的工作原理

Java冒泡排序法的工作原理

更新時間:2022-04-19 09:22:07 來源:動力節點 瀏覽1520次

動力節點小編來告訴大家Java冒泡排序法的工作原理,排序通常意味著將特定數組或元素集合排序或排序為特定序列,即按升序或降序。

有多種排序技術可以對給定的數字數組進行排序。在本文中,我們將學習 Java 中的冒泡排序技術。它是最常用的排序技術之一。

我們將討論它的工作原理,并且我們將在 Java 中實現它以按升序和降序對數組進行排序。所以,不浪費時間,讓我們開始討論什么是冒泡排序。

什么是Java數組冒泡排序?

冒泡排序是 Java 中對數組元素進行排序的最簡單的排序技術之一。

這個想法是通過比較相鄰元素并在它們不是特定順序時交換它們來從起始元素遍歷到最后一個元素。

它被稱為冒泡排序,因為在每次迭代結束時,最大的數字位于數組的底部,就像最重的氣泡在容器中沉淀一樣。元素的交換繼續進行,直到數組被排序并且不再需要交換。

我們還可以按降序對元素進行排序,每次迭代中最小的元素位于數組的末尾。這只有在我們反轉元素的權重時才會發生。

關于冒泡排序的一些要點是:

1.冒泡排序 的最壞和平均情況復雜度為O(n2),其中 n 表示數組中元素的總數。

2.冒泡排序的最佳情況復雜度是O(n),其中 n 是數組中元素的數量。這種情況只有在給定數組已經排序時才會發生。

3.冒泡排序算法消耗 的輔助空間是O(1)

4.冒泡排序是一種就地排序。

5.冒泡排序是一種穩定的算法。

注意:我們可以通過在原始代碼中添加一些額外的代碼行來優化冒泡排序算法并將復雜度降低到“n” (O(n))的數量級。

如果用戶輸入了一個有序數組,那么,與其申請所有的pass,我們可以只申請一個pass,并檢查在整個pass期間是否發生任何交換。

如果在整個過程中沒有發生交換,那么我們停止算法并返回原始數組。通過添加這段代碼,我們可以確保提高算法的性能并降低時間復雜度。

Java中冒泡排序的工作原理

現在,我們將看到 Java 中的冒泡排序如何處理給定的數組。我們有一個數組并對其進行排序,經過 4 次迭代,我們將得到一個排序后的數組。

Java中的冒泡排序程序以升序對給定數組進行排序

package com.techvidvan.bubblesort;
public class BubbleSortDemo {
  static void bubbleAscending(int[] myarray) {
    int n = myarray.length;
    int temp = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 1; j < (n - i); j++) {
        if (myarray[j - 1] > myarray[j]) {
          //Code to swap the elements
          temp = myarray[j - 1];
          myarray[j - 1] = myarray[j];
          myarray[j] = temp;
        }
      }
    }
  }
  public static void main(String[] args) {
    int myarray[] = {
      4,
      15,
      12,
      21,
      2,
      25,
      10,
      18
    };
    System.out.println("Array on which we apply Bubble Sort: ");
    for (int i = 0; i < myarray.length; i++) {
      System.out.print(myarray[i] + " ");
    }
    System.out.println();
    bubbleAscending(myarray); //Applying Bubble sort to sort the Array  
    System.out.println("Array after applying Bubble Sort: ");
    for (int i = 0; i < myarray.length; i++) {
      System.out.print(myarray[i] + " ");
    }
  }
}

輸出:

我們應用冒泡排序的數組:4、15、12、21、2、25、10、18

應用冒泡排序后的數組:2、4、10、12、15、18、21、25

Java 冒泡排序示例以降序對給定數組進行排序

包 com.techvidvan.bubblesort;
公共類 BubbleSortDemo {
  靜態無效氣泡降序(int [] myarray){
    int n = myarray.length;
    國際溫度 = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 1; j < (n - i); j++) {
        如果 (myarray[j - 1] < myarray[j]) {
          //交換元素的代碼
          temp = myarray[j - 1];
          我的數組[j - 1] = 我的數組[j];
          我的數組 [j] = 溫度;
        }
      }
    }
  }
  公共靜態無效主要(字符串[]參數){
    int myarray[] = {
      4、
      15,
      12,
      21,
      2、
      25,
      10,
      18
    };
    System.out.println("我們應用冒泡排序的數組:");
    for (int i = 0; i < myarray.length; i++) {
      System.out.print(myarray[i] + "");
    }
    System.out.println();
    氣泡降序(myarray);//使用冒泡排序對數組進行排序  
    System.out.println("冒泡排序后的數組:");
    for (int i = 0; i < myarray.length; i++) {
      System.out.print(myarray[i] + "");
    }
  }
}

輸出:

我們應用冒泡排序的數組:4、15、12、21、2、25、10、18

應用冒泡排序后的數組:25、21、18、15、12、10、4、2

Java 冒泡排序的使用

由于冒泡排序技術是最簡單的排序技術,因此它經常用于軟件技術的許多領域。

例如,冒泡排序在計算機圖形學領域非常有用,它可用于檢測非常小的錯誤,例如兩個元素之間的交換,并以 2n 的線性復雜度修復錯誤,其中 n 是元素的數量在數組中。

Java中冒泡排序的優點

冒泡排序的優點是:

寫起來簡單易懂

只需要幾行代碼

冒泡排序是一種就地排序技術,因此數據在內存中,因此內存開銷最小。

Java 冒泡排序的缺點

冒泡排序也有一些缺點:

對數組元素進行排序需要更多時間。

平均時間復雜度隨著數組元素數量的增加而增加。

以上就是關于“Java冒泡排序法的工作原理”介紹,除了冒泡排序法以外,還有其他方法,感興趣的小伙伴可以關注一下動力節點的Java數組排序方法詳解,里面有更豐富的知識等著大家去學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 偷偷鲁影院手机在线观看 | 99精品久久精品一区二区 | 天天干天天骑 | 日韩黄色录像 | 国产高清天干天天视频 | 91日韩欧美| 国产欧美日韩综合 | a毛片视频免费观看影院 | 日本一级大黄毛片免费基地 | 亚洲综合亚洲 | 亚洲高清不卡视频 | 久久综合九色综合91 | 久久综合久久综合久久 | 四虎影视在线麻豆国产 | 亚洲国产精品一区二区久久 | 在线视频日韩精品 | 久久国产高清视频 | 麻豆日韩区久久综合 | 国产精品亚洲综合第一区 | 黄色在线观看视频免费 | 免费毛片在线 | 美女视频很黄很黄又免费的 | 日本在线观看www鲁啊鲁视频 | 久久久久久久亚洲精品 | 国产一级毛片在线 | 国产福利在线观看第二区 | 亚洲在线小视频 | 真人实干一级毛片aa免费 | 5388国产亚洲欧美在线观看 | 成人网欧美亚洲影视图片 | 婷婷四房| 在线视频久草 | 久久机热re这里只有精品15 | 久久99爰这里有精品国产 | 香蕉精品 | 99re这里只有精品在线观看 | 日本精品夜色视频一区二区 | 国产美女一级视频 | 99re这里有免费视频精品 | 亚洲一区二区天海翼 | 日本高清有码 |