小白排序指冒泡排序

何爲冒泡?即輕的上浮。在這裏表現爲小的數向前靠攏,大的數向後靠攏(似乎我們從後往前遍歷,更能說明問題)。

具體實現過程:

首先,假設有一個n元的數組A,索引分別0,1,2,3.,...n-1。A[n-1]與A[n-2]相比較,將較小的數放在索引爲n-2的位置上,即放在靠前的位置上,下一次,A[n-2]與A[n-3]相比較,將較小的數放在索引爲n-3的位置上,即放在靠前的位置上,如此下去,數組中的數的最小值就放在了索引爲0的位置上。有一個元素歸位了,即冒泡冒上去了。重複下去,再從n-1索引位置開始比較。

注意,冒泡排序中,所有的比較都是相鄰比較,滿足條件即可交換。

public static void bubbleSort(int[] array){
		for (int i = 0; i < array.length - 1 ;i++){
			for (int j = array.length-1; j > i; j--){
				if (array[j-1]>array[j])
					swap(array,j-1,j);
			}
		}
	}
還是兩層循環。

注意:外層循環用了n-1次,原因是我們冒泡n-1次,可使n-1個較小的數歸位,自然第n個數也歸位了。外層循環控制每次歸位的元素的位置。

內層循環即爲從後往前冒泡所需要的比較的次數。
swap()函數同選擇排序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章