溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

冒泡排序算法

發(fā)布時(shí)間:2020-06-14 17:22:22 來(lái)源:網(wǎng)絡(luò) 閱讀:160 作者:殘缺的美13 欄目:編程語(yǔ)言

?????????????????????????????????冒泡排序算法

1. 原理

          冒泡排序,顧名思義就是將想冒泡一樣將最大的那個(gè)數(shù)冒到最高點(diǎn)。
          在一個(gè)數(shù)組中,遍歷這個(gè)數(shù)組,從第一個(gè)數(shù)開始,和后面一個(gè)數(shù)兩兩比較,
          如果前面一個(gè)數(shù)比后面一個(gè)數(shù)大,就交換2個(gè)數(shù)的位置,這樣可保證數(shù)組中
          最大的那個(gè)數(shù)一定在最后一位。這是第一次比較,接下來(lái)這個(gè)最大的數(shù)就
          不參與比較了,第二次比較重復(fù)上面操作,將第二大的數(shù)放在倒數(shù)第二位。
          同理,每次都把最大的數(shù)放在參與比較的數(shù)的最后一位,
          比到參與的只剩下一位數(shù)時(shí),排序完成。

2.舉例

    假設(shè)有個(gè)長(zhǎng)度為4的數(shù)組 a[]={22,3,44,21},下面用冒泡排序算法對(duì)其進(jìn)行升序排序。
    第一趟比較:22和3比較,22大于3,于是交換位置 數(shù)組變成 a[]={3,22,44,21}
                         22和44比較,22小于44,不做操作 數(shù)組為a[]={3,22,44,21}
                         44和21比較,44大于22,于是交換位置 數(shù)組為a[]={3,22,21,44}   
                         44成功冒泡,44不參與下一趟比較了
     第二趟比較:3和22比較,3小于22,不做操作 數(shù)組為a[]={3,22,21,44}
                          22和21比較,22大于21,于是交換 數(shù)組變?yōu)閍[]={3,21,22,44}  
                           22成功冒泡,44和22不參與下一趟比較
    第三趟比較:3和21比較,3小于21 不做操作 數(shù)組為a[]={3,21,22,44}   
                          21和22比較,21小于22 不做操作 數(shù)組為a[]={3,21,22,44}  
                           21成功冒泡,44,22,21不參與下次比較
     由于參與比較的只剩下3一個(gè)數(shù)了,排序結(jié)束,結(jié)果為數(shù)組升序排序。                     

3.java代碼實(shí)現(xiàn)

package sort;

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int a[]={22,3,44,21};
        bubbleSort(a);
        System.out.println(Arrays.toString(a));
    }   
    //冒泡排序算法
    public static void bubbleSort(int[] a){
        int temp;
        for(int i=0;i<a.length-1;i++){
            for(int j=0;j<a.length-1-i;j++){
                if(a[j]>a[j+1]){
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
        }
    }
}

打印結(jié)果為:[3, 21, 22, 44]

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI