JAVA基礎_JAVA中的冒泡排序

JAVA基礎_JAVA中的冒泡排序

在java中不可能每一個數組都做到有序排列,當我們要用到它時就必須先對其進行排序,所以這裏就引入了冒泡排序來實現,那麼他的思路是什麼呢?
其實很簡單,我們把數組中的第一個數看做最大,依次和後一位去比較,當第一位較大時,我們把兩個數交換位置(這裏排序是默認爲升序),然後再進行前一步操作,直到第一圈排序完成,找到最大的一個數;而如果是第一位小於後一位,那麼位置不變,後一位代替第一位和後邊的去比較,依次比較下去,直到第一圈結束,找到最大。這裏我們就完成了第一次排序,找到最大值,這時我們就可以利用循環去找到剩下每一個數的位置。下邊就是代碼實現:

public static void main(String[] args) {
	int z = 0;//用來做中轉,初始要爲0
	int[]ssr={12,5,6,78,4,8};
	/*
		這裏外部的for循環就是用來控制循環次數,做到數組每個數都能排到
	*/
	for (int j = 0;j<ssr.length;j++){
		/*
			內部的for循環配合if判斷做到每一輪找到一個該輪最大數
			i這裏是索引,不能大與數組的長度,否則索引越界
			這裏可以再優化一下for (int i = 0;i<ssr.length-1-i;i++){},讓前邊找到的排好的數不用參與判斷,減少耗時
		*/
		for (int i = 0;i<ssr.length-1;i++){
			if(ssr[i]>ssr[i+1]){
			z=ssr[i];
			ssr[i]=ssr[i+1];
			ssr[i+1]=z;
			}
		}
	}
//到這裏就完成了冒泡排序,但打印效果很難看,所以我們可以調java寫好的漂亮打印做到美觀
	String a = java.util.Arrays.toString(ssr);
	System.out.println(a);
//若不想去調也可以自己去寫(手動苦瓜臉)
	bt(ssr);
}
static void bt(int[]ssr){
	System.out.print("[");
	int a = 0;
for (a = 0;a<ssr.length;a++){
		System.out.print(ssr[a]);
	if(a!=ssr.length-1){
		System.out.print(",");
	}
}
		System.out.print("]");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章