《基礎演算法之排序》 1 氣泡排序 java實現

2021-08-25 22:26:01 字數 571 閱讀 1262

所謂氣泡排序,就是將較大的泡(數)不斷往上冒:

1、從第乙個位置開始,比較當前位置與下乙個位置值的大小,如果前乙個位置大於後乙個位置,則交換位置,並繼續向後遍歷;

2、 上一次遍歷完成,即得到最大的元素,並將其交換位置到了最後一位;

3、 接下來從第乙個位置開始,再重新選出[0,n-2]位置的最大數,放到n-2位置上;

4.、依次找到需要遍歷的最大元素及所需要放在end的位置,直至遍歷結束。

時間複雜度為o(n^2)

空間複雜度為o(1)

由於氣泡排序需要比較當前位與後一位的大小,當兩個位置數值相等時,不會發生位置的交換,故氣泡排序具有穩定性。

public

static

int bubblesort(int arr)

for (int end = arr.length - 1; end >= 0; end--) }}

return arr;

}public

static

void

swap(int arr, int i, int j)

排序演算法之(1) 氣泡排序

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。氣泡排序 bubble sort 一種交換排序,它的基本思想是 兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。這裡實現最簡單最容易想到的一種 輔助函式 交換兩個變數 v...

排序演算法之(1) 氣泡排序

氣泡排序總共進行n 1趟,每一趟掃瞄總是通過兩兩比較把大的往後放。所以第一趟即把最大數放在最後面,接著第二趟把第二大數放在倒數第二的位置 到n 1趟完畢。此時僅僅有乙個數未排序。這個數就是最小元素。不再須要掃瞄,此時完畢對全部元素的排序。include using namespace std voi...

基礎排序演算法之氣泡排序

1.主體 兩個迴圈 2.時間複雜度 o n 2 3.過程 對於公升序,比較相鄰兩個數,如果第二個數小,則交換位置 從數列後往前比較,最終第乙個數是最小的 重複上述步驟 demo include includeusing namespace std 氣泡排序 void my swap int firs...