public
class
bubblesort
}
}*/
//採用冒泡演算法,最外層從第乙個元素開始迴圈
for(
inti =0
;i <
len;
i++)
}
}
}
public
static
void
main
(string
args
);
sort
(src
);
for(
inti
:src
)
}
}
時間複雜度:
最好的時間複雜度(正序):o(n) :(好像是改進過的)。
最差的時間複雜度(反序):o(n^2):
比較次數:(n-1)+(n-2)+(n-3)+....+2+1 也就是
o(n^2).
移動次數:3*比較次數,最壞的情況. 也就是o(n^2)。
10000
name
:氣泡排序
1花費了
=183ms
name
:氣泡排序
2花費了
=36ms
name
:氣泡排序
3花費了
=29ms
name
:氣泡排序
4花費了
=169ms
name
:氣泡排序
5花費了
=31ms
平均大概是
89
50000
name
:氣泡排序
1花費了
=5090ms
name
:氣泡排序
2花費了
=833ms
name
:氣泡排序
3花費了
=757ms
name
:氣泡排序
4花費了
=5125ms
name
:氣泡排序
5花費了
=744ms
平均
2509
100000
name
:氣泡排序
1花費了
=20694ms
name
:氣泡排序
2花費了
=3338ms
name
:氣泡排序
3花費了
=3120ms
name
:氣泡排序
4花費了
=20862ms
name
:氣泡排序
5花費了
=3103ms
平均:
10223
可以看出來和選擇排序排序哪一張對比(在相同條件下做出的測試):
1、平均時間都比選擇排序用時要長,這是由於氣泡排序交換的次數遠比選擇排序多,而比較次數則一樣。
2、氣泡排序的時間波動相對來說比較大,和隨機數組的原本排序有關。如果原本順序比較好,那麼氣泡排序就
不需要太多的交換,那麼速度會快很多。而相對插入排序,每次都的遍歷完所有的未排序的序列,所以時間
也是相對很穩定的。
穩定性:穩定。
如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過
前面的兩兩交換把兩個相
鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩
定排序演算法。
C語言實現冒泡演算法
打算認真研究演算法,所以,把這些基本演算法都寫出來,練練手。部分內容引用 坐在馬桶上看演算法2 冒泡演算法特徵 每次迴圈只能讓乙個資料排到正確的位置上。因此,n個資料的排序,必須執行n 1次迴圈 讓n 1個資料排到正確位置上,剩下的那個自然是最小的,排在最後,不用迴圈 include int mai...
正宗冒泡法 java語言實現
冒泡法的思想就是 小的不停地 向前跑 大的不停地 向後 冒。如下 public class main system.out.println 排序前 print a bubblesort a system.out.println system.out.println 排序後 print a publi...
氣泡排序演算法C語言實現
氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。在...