1. 程式人生 > >Java學習之路——氣泡排序與選擇排序

Java學習之路——氣泡排序與選擇排序

Java學習之路——for迴圈實現氣泡排序

基本步驟為:

  1. 利用for迴圈輸入並輸出陣列各個元素的值
  2. 利用冒泡法(選擇法)進行排序
  3. 利用for迴圈將排序完成的陣列元素進行輸出   冒泡法方法:氣泡排序採取從頭至尾以此比較相鄰的兩個元素;小數放前,大數放後。第一輪:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,依此類推,直至比較最後兩個數,將小數放前,大數放後。重複第一輪步驟,進行下一輪排序,直至全部排序完成。

例如;int[] arr={6,8,7,9,2,3};

第一輪排序:

第一次排序:6和8比較,6小於8,不交換位置: 687923

第二次排序:8和7比較,8大於7,交換位置:678923

第三次排序:8和9比較,8小於9,不交換位置:678923

第四次排序:9和2比較,9大於2,交換位置:678293

第五次排序:9和3比較:9大於3,交換位置: 678239

第一趟總共進行了5次比較, 排序結果: 678239

第二輪排序:

第一次排序:6和7比較,6小於3,不交換位置:678239

第二次排序:7和8比較,7小於8,不交換位置: 678239

第三次排序:8和2比較,8大於2,交換位置:672839

第四次排序:8和3比較,8大於3,交換位置: 672389

第二趟總共進行了4次比較, 排序結果: 672389

第三輪排序:

第一次排序:6和7比較,6小於7,不交換位置: 672389

第二次排序:7和2比較,7大於2,不交換位置:627389

第三次排序:7和3比較,7大於3,交換位置: 623789

第二趟總共進行了3次比較, 排序結果: 623789

第四輪排序:

第一次排序:6和2比較,6大於2,交換位置:263789

第二次排序:6和3比較,6大於3,交換位置: 236789

第二趟總共進行了2次比較, 排序結果: 236789

第五輪排序:

第一次排序:2和3比較,2小於3,交換位置: 236789

第二趟總共進行了1次比較, 排序結果: 236789

最終結果:236789    第一輪比較完成後,最後一個位置一定是陣列中最大的數值,第二輪比較時最後一個數不參與下一次比較;   第二輪比較完成後,倒數第二個位置一定是陣列中第二大的數值,第三輪比較時最後兩個數不參與下一次比較;   依次類推,陣列有n個元素時,共要進行n-1輪比較,每一輪比較次數-1。   主方法為      `

	int[] arr={6,8,7,9,2,3};
	//輸出排序前陣列
	for(int i = 0;i<arr.length;i++) {
		System.out.println(arr[i]);
	}
	//氣泡排序操作
	for (int i = 0;i<arr.length;i++) {	//外層迴圈控制排序輪數
		for(int j = 0;j<arr.length-1-i;j++) {	//內層迴圈控制一輪中比較次數
			if(arr[j]>arr[j+1]) {
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	//輸出排序完成後的陣列結果
	System.out.println("排序後的陣列為:");
	for(int num:arr) {
		System.out.println(num);
	}
}`