Java實現數組排序含冒泡排序、選擇排序

數組排序其實很簡單,但是小瘋因爲許久不用有些生疏,所以在這裏重溫一下,這裏有兩種簡單的冒泡和選擇。

一、冒泡排序

    根據數組的長度循環遍歷,並判斷如果前一個值小於後一個值,那麼就把“後一個值”排列到“當前前一個值”的前面。代碼實現如下:

// 定義一個無序的整形數組
int arr[] = {25,29,13,10,12,14,41};
// 進行排序
for(int i = 0; i < arr.length; i++) {
	for(int j = 0; j < arr.length - 1; j++) {
		if(arr[j] > arr[j+1]) {
			// 替換臨時變量
			int temp;
			// 把大的值放入中間變量
			temp = arr[j];
			// 把較小的值放入前一位
			arr[j] = arr[j+1];
			// 把較大的值放入後一位
			arr[j+1] = temp;
					
		}
	}
}

    通過FOR循環取出最後的排序。代碼實現如下:

// 遍歷數組,依次輸出
for(int i = 0; i < arr.length; i++) {
	System.out.println(arr[i]);
    }
}

    在main函數中,通過實例化別名點方法名的方式調用並打印出結果。就是想要的從小到大的順序

 

二選擇排序

     根據數組的長度循環遍歷,並判斷如果第一個值大於後邊的值,就把小的值替換到前邊,依次篩選第一小的、第二小的……代碼實現如下:

		// 定義一個無序的整形數組
		int arr[] = {25,29,13,10,12,14,41};
		// 進行排序
		for(int i = 0; i < arr.length; i++) {
			for(int j = i+1; j < arr.length - 1; j++) {
				if(arr[i] > arr[j]) {
					// 替換臨時變量
					int temp;
					// 把大的值放入中間變量
					temp = arr[i];
					// 把較小的值放入前一位
					arr[i] = arr[j];
					// 把較大的值放入後一位
					arr[j] = temp;
					
				}
			}
		}

    通過循環輸出同冒泡一致!

當然關於排序算法還有幾種,有興趣的可以關注後續!!

 

關於冒泡排序,小瘋的代碼有問題,多做了多次無用循環,還好有一位朋友【qizhiyang】指點,在這裏要感謝一下,現修改代碼如下:

int arr[] = {25,29,13,10,12,14,41};
// 進行排序
for(int i = 0; i &lt; arr.length - 1; i++) {
	for(int j = 0; j &lt; arr.length -i - 1; j++) {
		if(arr[j] &gt; arr[j+1]) {
			// 替換臨時變量
			int temp;
			// 把大的值放入中間變量
			temp = arr[j];
			// 把較小的值放入前一位
			arr[j] = arr[j+1];
			// 把較大的值放入後一位
			arr[j+1] = temp;
					
		}
	}
}

各位有興趣的可以比較一下看看其中的異同。

在這裏非常感謝大神【qizhiyang】的指點,希望能得到更多朋友的幫助

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