相信大部分同窗都已經學過數據結構與算法這門課了,而且咱們可能都會發現一個現象就是咱們所學過的數據結構與算法類的書籍基本都是使用 C 語言來寫的,好像沒見過使用 Java 寫的數據結構與算法。java
帶着這個好奇心,我去查了下資料,國內基本找不到使用 Java 寫的數據結構與算法書籍,有一本書叫《Java 數據結構與算法》,這本書的代碼是使用 Java 實現的,不過這本書是國內的學者翻譯國外的書籍寫出來的,我的感受這本書對於初學者來講,仍是比較難理解的。算法
冒泡排序一種運行效率很低的排序算法,然而雖然排序效率低,確實排序入門很重的算法,由於冒泡排序的思路是最簡單最容易理解的排序算法了。微信
一、定義: 冒泡排序是一種經過兩兩比較相鄰記錄的關鍵字,若是反序則交換,直到沒有反序的記錄爲止的交換排序。數據結構
二、實現思想: 經過比較兩兩相鄰記錄的關鍵字,將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,若是後面的比前面的小則交換,而後比較第二個和第三個,依次類推。比完一個循環,最大的那個已經放到了最後的位置,這樣就能夠對前面N-1個數再循環比較。測試
下面以一羣身高不等的學生爲例,以下圖所示:spa
未排序的學生 翻譯
已排序的學生code
一、冒泡排序實現算法:cdn
BubbleSort.java
blog
package BubbleSort;
/** * * 冒泡排序實現算法 * */
public class BubbleSort {
public void bubble(Integer[] data){
for(int i=0;i<data.length;i++){
for(int j=0;j<data.length-1-i;j++){
//若是後一個數小於前一個數,則兩個數互相交換位置
if(data[j]>data[j+1]){
int tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
}
複製代碼
二、冒泡排序測試:
Test.java
package BubbleSort;
import java.util.Arrays;
/** * * 測試冒泡排序 * */
public class Test {
public static void main(String[] args) {
Integer[] list={149,138,165,197,176,113,127,114,110};
//冒泡排序
BubbleSort bs = new BubbleSort();
bs.bubble(list);
System.out.println("排序前的結果爲:" + Arrays.toString(list));
System.out.print("排序後的結果爲:");
for(int i=0;i<list.length;i++){
System.out.print(list[i]+" ");
}
}
}
複製代碼
二、測試結果: