算法描述:對於給定的n個記錄,從第一個記錄開始依次對相鄰的兩個記錄進行比較,當前面的記錄大於後面的記錄時,交換位置,進行一輪比較和交換後,n個記錄中的最大記錄將位於第n位;然後對前(n-1)個記錄進行第二輪比較;重複該過程直到進行比較的記錄只剩下一個為止。
冒泡排序是非常好理解的,以從小到大排序為例,每一輪排序就找出未排序序列中最大值放在最後。
設數組的長度為N:
(1)比較前後相鄰的二個數據,如果前面數據大於後面的數據,就將這二個數據交換。
(2)這樣對數組的第0個數據到N-1個數據進行一次遍歷後,最大的一個數據就“沉”到數組第N-1個位置。
(3)N=N-1,如果N不為0就重複前面二步,否則排序完成。
以上就是冒泡排序的基本思想,按照這個定義很快就能寫出代碼。
package sorting;/** * 冒泡排序* 平均O(n^2),最好O(n),最壞O(n^2);空間複雜度O(1);穩定;簡單* @author zeng * */public class BubbleSort {public static void bubbleSort(int[] a){int n = a.length;int temp = 0;for (int i=0;i<n;i++){for (int j=0;j<ni-1;j++){if(a[j]<a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}}public static void main(String[] args){int[] a ={49,38,65,97,76,13,27,50};bubbleSort(a);for (int j:a) System.out.print(j+" ");}}總結
以上就是本文關於Java冒泡排序簡單實現的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!