冒泡排序是計算機的一種排序方法,它的時間復雜度為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,凡掃描到違反本原則的輕氣泡,就使其向上"漂浮",如此反復進行,直至***任何兩個氣泡都是輕者在上,重者在下為止。
代碼實現:
//冒泡排序publicclassBubbleSort{publicstaticvoidsort(Comparable[]data){//數組長度intlen=data.length;for(inti=0;i<len-1;i++){//臨時變量Comparabletemp=null;//交換標志,false表示未交換booleanisExchanged=false;for(intj=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;}//endif}//endfor//本趟排序未發生交換,提前終止算法,提高效率if(!isExchanged){return;}//endif}//endfor}//endsortpublicstaticvoidmain(String[]args){//在JDK1.5版本以上,基本數據類型可以自動裝箱//int,double等基本類型的包裝類已實現了Comparable接口Comparable[]c={4,9,23,1,45,27,5,2};sort(c);for(Comparabledata:c){System.out.println(data);}}}
使用冒泡排序法對n個數據進行排序,共需要進行n-1次的比較。如果本來就是有順序的數據,也需要進行n-1次比較。冒泡排序法的算法很簡單,效率也較差。
“Java冒泡排序代碼怎么寫”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注本站網站,小編將為大家輸出更多高質量的實用文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(相關資料圖)有關彈彈堂高差訓練怎么過方面的知識,估計很多人不是太了解,今天就給大家詳細的介紹一下關于彈彈堂高差訓練怎么過的相關內容。1、可以用一個最簡單,最笨的方法,就是像打黑暗堡壘的火那樣,直線對準要打擊的物體,滿力就OK了。2、當然,有很多玩家打火確實很不牢靠,也可以用高拋的方式去打就完全可以順利畢業的了。3、以下是高拋法通過的技巧:(1)10P以內:基本沒什么高差問題,直接按照高差的公式去...
2019獨生子女補貼最新政策是什么?一、獨生子女獎勵金只要是農村獨生子女家庭,就可以按月領取到這項補貼,地方不同、補助標準會有不同,夫妻雙方每人每月都有。領取的條件很簡單,只要持有獨生子女證書即可,因此還沒有辦理這個證書的農民抓緊了。二、獨生子女養老補貼農村里的獨生子女壓力比城鎮里的大,因為農村的父母沒有可觀的退休金,年紀大了后又失去了勞動能力。為了減輕這一養老負擔,國家規定獨生子女家庭的父母年滿...
(資料圖片僅供參考)生活中,很多人都不知道趙寶剛青春三部曲最后一部 趙寶剛青春三部曲,其實非常簡單,下面就是小編搜索到的趙寶剛青春三部曲最后一部 趙寶剛青春三部曲相關的一些知識,我們一起來學習下吧!今天來聊聊關于趙寶剛青春三部曲最后一部,趙寶剛青春三部曲的文章,現在就為大家來簡單介紹下趙寶剛青春三部曲最后一部,趙寶剛青春三部曲,希望對各位小伙伴們有所幫助。1、趙寶剛的青春三部曲第二部:《我的青春誰...