依次兩兩比較,較小的浮上來,較大的往下沉。
平均時間複雜度:o(n2)
空間複雜度:o(1) (用於交換)
穩定性:穩定
public static void bubblesort(int array)
}}
}
加入一標誌性變數flag,用於標誌某一趟排序過程中是否有資料交換,如果進行某一趟排序時並沒有進行資料交換,則說明資料已經按要求排列好,可立即結束排序,避免不必要的比較過程。
public static void bubblesort(int array)
}if(! flag) break; 上一趟比較中不存在交換,則退出排序
} }
傳統的排序演算法在一次排序中,只能找到乙個最大值或最小值, 考慮利用在每趟排序中進行正向和反向兩遍冒泡的方法一次可以確定兩個最終值(最大者和最小者) , 從而使排序次數減少。
public static void bubble2sort(int array)
}low++;
//反向冒泡,確定最小值
for(int i =high-1 ;i >= low; i-- )
}high--;
} }
Java實現氣泡排序演算法
一 基本思路 氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣...
Java實現氣泡排序演算法
氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣泡排序,總共需...
Java實現氣泡排序演算法
一 基本思路 氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣...