程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java排序算法總結之冒泡排序

Java排序算法總結之冒泡排序

編輯:關於JAVA

Java排序算法總結之冒泡排序。本站提示廣大學習愛好者:(Java排序算法總結之冒泡排序)文章只能為提供參考,不一定能成為您想要的結果。以下是Java排序算法總結之冒泡排序正文


本文實例講述了Java排序算法總結之冒泡排序。分享給年夜家供年夜家參考。詳細剖析以下:

媒介:冒泡排序(BubbleSort)就是順次比擬相鄰的兩個數,將小數放在後面,年夜數放在前面。

上面讓我們一路    來看冒泡排序在Java中的算法完成。

冒泡排序是盤算機的一種排序辦法,它的時光龐雜度為O(n^2),固然不及堆排序、疾速排序的O(nlogn,底數為2),然則有兩個長處:

1.“編程龐雜度”很低,很輕易寫出代碼;
2.具有穩固性,這裡的穩固性是指原序列中雷同元素的絕對次序依然堅持到排序後的序列,而堆排序、疾速排序均不具有穩固性。

不外,一路、二路合並排序、不屈衡二叉樹排序的速度均比冒泡排序快,且具有穩固性,但速度不及堆排序、 
疾速排序。冒泡排序是經由n-1趟子排序完成的,第i趟子排序從第1個數至第n-i個數,若第i個數比後一個數年夜
(則升序,小則降序)則交流兩數。

冒泡排序算法穩固,O(1)的額定的空間,比擬和交流的時光龐雜度都是O(n^2),自順應,關於已根本排序的算法,時光龐雜度為O(n)。冒泡算法的很多性質和拔出算法類似,但關於體系開支高一點點。

排序進程

假想被排序的數組R[1..N]垂直豎立,將每一個數據元素看做有分量的氣泡,依據輕氣泡不克不及在重氣泡之下的准繩,從下往上掃描數組R,凡掃描到違背來源根基則的輕氣泡,就使其向上"漂浮",如斯重復停止,直至最初任何兩個氣泡都是輕者在上,重者鄙人為止。

代碼完成:

// 冒泡排序   
public class BubbleSort{
  public static void sort(Comparable[] data){
    // 數組長度 
    int len = data.length; 
    for (int i = 0; i < len - 1; i++){
      // 暫時變量 
      Comparable temp = null; 
      // 交流標記,false表現未交流 
      boolean isExchanged = false; 
      for (int j = len - 1; j > i; j--){
        // 假如data[j]小於data[j - 1],交流 
        if (data[j].compareTo(data[j - 1]) < 0){
          temp = data[j]; 
          data[j] = data[j - 1]; 
          data[j - 1] = temp; 
          // 產生了交流,故將交流標記置為真 
          isExchanged = true; 
        }// end if 
      }// end for 
      // 本趟排序未產生交流,提早終止算法,進步效力 
      if (!isExchanged){
        return; 
      }// end if 
    }// end for 
  }// end sort 
  public static void main(String[] args){
    // 在JDK1.5版本以上,根本數據類型可以主動裝箱
    // int,double等根本類型的包裝類已完成了Comparable接口
    Comparable[] c = { 4, 9, 23, 1, 45, 27, 5, 2 };
    sort(c);
    for (Comparable data : c){
      System.out.println(data);
    }
  }
}

應用冒泡排序法對n個數據停止排序,共須要停止n-1次的比擬。假如原來就是有次序的數據,也須要停止n-1次比擬。冒泡排序法的算法很簡略,效力也較差。

願望本文所述對年夜家的java法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved