算法原理:冒泡排序是經過n-1趟子排序完成的,第 i 趟子排序從第1個數至第 n-i+1 個數,若第 i 個數比第 i+1 個數大,則交換這兩個數,實際上這樣經過 i 次子排序就使得 第1個數至第 n-i +1個數之間最大的數交換到了n-i+1 的位置上了。實際上冒泡排序時可以優化的,那就是當第 i 次子排序并沒有發生元素的交換時,就說明數組已經排好序了,以後的子排序就不用做了。
算法代碼:
小結:冒泡排序算法的時間複雜度是O(n^2),同時冒泡排序也是穩定的,并且屬于原地排序,排序的效率取決于逆序對的多少。采用一點小優化也加速了冒泡排序。