Java中的冒泡排序是如何實現的?
我們先來看看冒泡排序的算法是如何定義的:
冒泡算法冒泡排序(Bubble Sort),是一種計算機科學領域的較簡單的排序算法。它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重復地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。Java編碼實現了解了冒泡排序的基本定義之后,根據其思想我們來根據題主的要求看看如何用Java實現冒泡排序算法,代碼如下圖:
基本原理就是如下的邏輯走向:
執行后輸出如下:
有沒有發現什么問題?是不是到了第6次已經完成排序了?后面的是不是就屬于浪費了?所以我們需要優化一下,當他的順序已經排序完畢了就不再進行排序了,優化后的代碼如下:
執行后輸出:
可以看出來只執行了6次排序。
算法復雜度那么冒泡算法的復雜度是怎樣的呢?相信大家看到這已經基本上可以算出來了:
時間復雜度:兩層循環O(n2);
空間復雜度:還是原來的數組,沒有開辟新的內存空間,所以是O(n)。
以上就是冒泡算法Java版的實現方案,大家有什么看法呢?歡迎評論區交流討論,共同學習~
我是【java架構設計】,關注我,持續為您提供Java領域優質內容!上一篇學編程是要先學會編程思想
下一篇java程序如何運行