當前位置:
首頁 > 知識 > 數組排序之冒泡排序

數組排序之冒泡排序

排序一直都是一個比較繞的問題,雖然JAVA底層已經給我們實現的排序演算法,但自己理解排序對我們以後課程的學習也是非常有必要的,下面就讓我們來看看幾種常見的排序。

何為排序????

簡單來說就是將一組「無序」的記錄序列調整為「有序」的記錄序列。常見的有:冒泡排序、選擇排序、和插入排序,我們也就先講講冒泡排序------------

冒泡排序:

冒泡排序是一種簡單的排序演算法,其核心思想就是-----大數下沉、小數上浮

看圖:

數組排序之冒泡排序

數組排序之冒泡排序

數組排序之冒泡排序

數組排序之冒泡排序

如此一遍走完,最高個的人將在最後。

對應到代碼上就是:

數組排序之冒泡排序

數組排序之冒泡排序

數組排序之冒泡排序

相信到此你也能明白冒泡排序的理論思想了,如果還不理解,你可以繼續看,或者就關上它吧,等你再學一段時間再來吧!!!!

好了,理論都介紹完了,該貼代碼了--------------

/**

* 對指定的 int 型數組按數字升序進行冒泡排序

* @param a 待排序的數組

*/

public static void sortBubble(int[] a) {

int temp;//用於交換的中間變數(建議在這裡定義,否則在for循環里定義會降低程序效率)

for (int i = 1; i < a.length; i++) {

for (int j = 0; j < a.length - i; j++) {

if (a[j] > a[j+1]) {

temp = a[j];//三步交換

a[j] = a[j+1];

a[j+1] = temp;

}

不要太糾結於代碼,主要還是要理解這個過程就好

----------------不止這一種寫法,你可能會在其它地方看到其它寫法的,但這個應該是效率最高的了。如果你看到其它更好的寫法,請告訴我

我在建立自己的JAVA工具包,希望做到最優

如果你也在寫自己的工具包,我們可以互補一下。謝謝。。。

禁止轉載-----必究

張岩

2017-08-03

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

python函數(5):迭代器和生成器
MySQL優化-所需了解的基礎知識
Redux源碼分析之createStore
sybase資料庫和oracle資料庫中欄位中含有換行符的解決辦法
Raft協議安全性保證

TAG:科技優家 |

您可能感興趣

數字能量學基礎知識之事業數組,能夠讓你提升工作能力的數字
每日打卡做題有序四元數組
最全的數組操作方法
JS內置對象之數組詳解
最全的JS數組去重
C 語言動態數組
PHP 刪除數組中的元素
跳轉語句與數組基礎
ES6 的數組
JSON 數組
EOS節點遠程代碼執行漏洞—EOS智能合約WASM函數表數組越界
為什麼存儲密碼字元數組比字元串更合適?
MID函數與數組公式,跟輔助列說再見
程序猿大神教你學C語言編程新手入門基礎:指針數組與數組指針
「簡單數組元素」判斷數組中是否包含某個元素的正確搞法
《PHP技術大全·第一卷》之數組 Array 細緻解讀
連續子數組最大和
一個優雅的反轉數組的演算法
《演算法圖解》之數組和鏈表的比較
函數組合不被SM當作親女兒看待,面臨解散,這些歷史性時刻將成為經典