數組排序之冒泡排序
排序一直都是一個比較繞的問題,雖然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當作親女兒看待,面臨解散,這些歷史性時刻將成為經典