App下載

Java算法排序之冒泡排序

猿友 2021-07-14 09:27:34 瀏覽數(shù) (2401)
反饋

本文將為您介紹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ì)相鄰元素作相同工作,從最開(kāi)始的一對(duì),到最后一對(duì)。因此,最后一位必定是最大的數(shù)。

3、針對(duì)所有的元素重復(fù)以上步驟,除了最后一個(gè),即需要進(jìn)行 length-1 次。直到?jīng)]有任何一對(duì)數(shù)字需要比較,則算法結(jié)束。

動(dòng)態(tài)圖展示:

000

二、代碼實(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


0 人點(diǎn)贊