您好,登錄后才能下訂單哦!
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]
免責(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)容。