本文將為您介紹Java算法排序中的冒泡排序,并利用所學(xué)的Java基礎(chǔ)知識(shí)實(shí)現(xiàn)Java中的冒泡排序算法。
冒泡排序 Bubble Sort ,是一種計(jì)算科學(xué)領(lǐng)域的較簡(jiǎn)單的排序算法。冒泡排序把小的元素往前調(diào)或是把大的向后調(diào),比較的知識(shí)相鄰兩個(gè)元素。如果兩個(gè)元素相等,則不會(huì)再交換;如果相等的不相鄰,即便前兩個(gè)交換后相鄰,這兩個(gè)相等的也不會(huì)交換。所以冒泡排序是一種穩(wěn)定排序算法。
一、冒泡排序的步驟
1、比較相鄰的兩個(gè)元素,如果第一個(gè)比第二個(gè)大,那么就交換二者。
2、對(duì)每一對(duì)相鄰元素作相同工作,從最開始的一對(duì),到最后一對(duì)。因此,最后一位必定是最大的數(shù)。
3、針對(duì)所有的元素重復(fù)以上步驟,除了最后一個(gè),即需要進(jìn)行 length-1 次。直到?jīng)]有任何一對(duì)數(shù)字需要比較,則算法結(jié)束。
動(dòng)態(tài)圖展示:
二、代碼實(shí)例
public class BubbleSort {
public static void bubbleSort(int[] array) {
boolean flag = false;//記錄一趟排序過(guò)程是否進(jìn)行的數(shù)值的交換
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
//相等就不進(jìn)行交換,保證算法的穩(wěn)定性。
if(array[j] > array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(!flag){ //如果一次交換都未進(jìn)行,就說(shuō)明整個(gè)數(shù)組是有序的
break;
}
}
}
}
三、debug命令調(diào)試
1、打斷點(diǎn),在需要斷點(diǎn)的行數(shù)前進(jìn)行點(diǎn)擊。
2、右鍵單擊 Debug 模式運(yùn)行。
3、 F8 快捷鍵依次執(zhí)行代碼。
四、總結(jié)
通過(guò)用Java基礎(chǔ)實(shí)現(xiàn)冒泡排序算法的練習(xí),對(duì)Java排序算法有一個(gè)大概的了解。想要了解更多有關(guān)Java排序算法的內(nèi)容,請(qǐng)關(guān)注 W3CSchool 和 編程獅APP。