冒泡排序
冒泡排序是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2ZuYzN3ADO0QTMzAzNwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.gif)
/**
* 冒泡排序
*
* 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
*
* 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
*
* 針對所有的元素重複以上的步驟,除了最後一個。
*
* 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
*/
@Test
public void sort1(){
//定義一個待排序數組
int[] arr = {1,4,8,3,9,6};
//外循環
for (int i = 1; i<arr.length; i++){ //控制排序次數
//System.out.print(arr[i]); // 1 4 8 3 9 6 依次取出每一個元素
//内循環
for (int j = 0 ; j < arr.length-i;j++){
System.out.print(arr[j]); //第一次循環擷取第一個元素
System.out.println("-----------");
System.out.print(arr[j+1]); //第一次循環擷取第二個元素.
System.out.println("++++++++++++");
//比較倆個元素大小
if (arr[j] > arr[j+1]) {
//如果第一個元素大于第二個元素則換
int temp;
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
for (int a : arr){
System.out.print(a);
}
}