簡介
冒泡排序應(yīng)該是最簡單的一種排序之一了,它的思想就是通過比較相鄰的一對(duì)元素,如果前者比后者大就交換這兩個(gè)數(shù),就這樣從第一對(duì)比較比較到最后一對(duì)就把最大的數(shù)換到最后去了,然后開始第二輪的交換雀摘,把第二大的數(shù)換到倒數(shù)第二個(gè)位置上,以此類推八拱,最后完成排序阵赠。
復(fù)雜度
時(shí)間復(fù)雜度
1.這種算法最壞的情況就是對(duì)一個(gè)完全逆序的數(shù)組進(jìn)行排序涯塔,這樣每一次都要交換,所以交換次數(shù)為(n-1)+(n-2)+...+3+2+1=n(n-1)/2次
2.最好的情況當(dāng)然是已經(jīng)排好序的數(shù)組清蚀,交換次數(shù)為0次
3.所以這個(gè)算法的平均復(fù)雜度為O(n2),是一種穩(wěn)定的排序方法
空間復(fù)雜度
這是一個(gè)時(shí)間換空間的算法匕荸,它的空間復(fù)雜度為O(1),因?yàn)椴恍枰肫渌麛?shù)據(jù)結(jié)構(gòu)
java代碼實(shí)現(xiàn)
public void bubbleSort(int[]a)
{
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])
{
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
}
That's all.