氣泡排序的基本概念是依次比較相鄰的兩個元數,將小的數放在前面,大的數放在後面。
即在第一趟排序中,首先比較第1個數和第2個數,將小數放前,大樹放後;
然後比較第2個數和第3個數,將小數放前,大數放後。以此類推,如此繼續,直到比較最後兩個數,將小數放前,大數放後。至此,第一趟排序結束,將最大的數放到了最後!
第二趟:仍從第一對數開始比較,將小數放前,大數放後,一直比到倒數第2個數(倒數第1個數已經是最大的了),第二趟結束,倒數第2的位置上得到乙個新的最大數。
以此類推,重複以上過程,直至最終完成排序。
由於排序過程中總是小數往前放,大數往後放,類似於氣泡上公升,所以成為氣泡排序。
public static void bubblesort(int arr)}}穩定}
空間複雜度o(1)
時間複雜度o(n2)
最差情況:反序,需要交換n*(n-1)/2個元素
最好情況:正序,不需要交換元素 o(n)
若記錄序列的初始狀態為"正序",則氣泡排序過程只需進行一趟排序,在排序過程中只需進行n-1次交換,且不移動記錄;
反之,若記錄序列的初始狀態為"逆序",則需進行n(n-1)/2次比較和記錄移動。
因此氣泡排序總的時間複雜度為o(n2)。
氣泡排序 bubble sort
氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...
氣泡排序(Bubble Sort)
無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...
氣泡排序 Bubble Sort
維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...