两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.冒泡排序

冒泡排序(Bubble Sort)是編程中較簡單的一種排序算法。它重復(fù)地走訪要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤,就把它們交換過來。重復(fù)地進(jìn)行走訪數(shù)列的工作直到?jīng)]有再需要交換的元素,這也就意味著該數(shù)列已經(jīng)完成排序。


冒泡排序就像氣泡從水中出現(xiàn)一樣,在氣泡排序中最小或最大的數(shù)字,取決于我們是按升序還是降序排序數(shù)組,氣泡朝著數(shù)組的開始或結(jié)束冒出。

2.冒泡排序的算法原理

1)比較相鄰的元素,如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。

2)對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì),在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。

3)針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。

4)持續(xù)對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

3.冒泡排序的復(fù)雜度和性能

與其他排序算法,諸如快速排序、歸并排序或shell排序相比,冒泡排序表現(xiàn)不佳。這些算法的平均情況復(fù)雜度為O(nlogn),而冒泡排序平均情況復(fù)雜度為O(n^2)。


在最佳情況下,冒泡排序比具有O(n)性能的快速排序更好。冒泡排序比快速排序或歸并排序慢三倍,即使n=100,但它更容易實(shí)現(xiàn)和記憶。


冒泡排序的復(fù)雜度和性能如下:

1)冒泡排序最差情況性能O(n^2)

2)冒泡排序最佳情況性能O(n)

3)冒泡排序平均情況性能O(n^2)

4.形成代碼

//冒泡排序
public static void bubbleSort(int[] arr) {
    //外層循環(huán)用來控制數(shù)組循環(huán)的圈數(shù)
    for(int i=0;i<arr.length-1;i++) {
        //內(nèi)層循環(huán)用來完成元素值比較,把大的元素值互換到后面
        for(int j=0;j<arr.length-1-i;j++) {
            if(arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    //輸出結(jié)果
    for(int n:nums) {
        System.out.println(n);
    }
}


例如:

public class Main {
    public static void main(String[] args) {
        int a[] = {6,1,15,32,9};
        for(int i=1;i<a.length;i++) {
            for(int j=0;j<a.length-1;j++) {
                if(a[j] > a[j+1]) {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        System.out.println("冒泡排序的結(jié)果是:");
        for(int temp:a) {
            System.out.print(temp+" ");
        }
    }
}


運(yùn)行結(jié)果如下:

冒泡排序的結(jié)果是:
1 6 9 15 32


大家可以親自上機(jī)實(shí)驗(yàn)!


點(diǎn)贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個(gè)爬蟲的Python編程課程

只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)