* 數組排序—冒泡排序
- 比較相鄰的兩個數,若按照順序排序,前面的數大於後面的數,則交換位置,第一輪過後最大的排在數組的最後面,經過n-1輪,完成排序
1.原理:比較兩個相鄰的元素,將值大的元素交換到右邊
2.思路:依次比較相鄰的兩個數,將比較小的數放在前面,比較大的數放在後面。
(1)第一次比較:首先比較第一和第二個數,將小數放在前面,將大數放在後面。
(2)比較第2和第3個數,將小數 放在前面,大數放在後面。
…
(3)如此繼續,知道比較到最後的兩個數,將小數放在前面,大數放在後面,重複步驟,直至全部排序完成
(4)在上面一趟比較完成後,最後一個數一定是數組中最大的一個數,所以在比較第二趟的時候,最後一個數是不參加比較的。
(5)在第二趟比較完成後,倒數第二個數也一定是數組中倒數第二大數,所以在第三趟的比較中,最後兩個數是不參與比較的。
(6)依次類推,每一趟比較次數減少依次
/*
* 數組的排序:升序與降序,必須能夠比較大小 數值型 字符(ASCII碼值表)
*/
int as[] = {5,4,3,2,1};
//升序 小到大
for (int i = 0; i < as.length-1; i++) {//比較多少輪
for (int j = 0; j < as.length-1-i; j++) {//比較每一輪的兩個數
int a = as[j]; //數組第一數
int b = as[j+1];//第二個數
//交換位置
if(a>b){
int temp = as[j];
as[j]=as[j+1];
as[j+1] = temp;
}
//用加減法
// if(a>b){
// as[j]=as[j]+as[j+1];
// as[j+1]=as[j]-as[j+1];
// as[j]=as[j]-as[j+1];
// }
}
}
System.out.println(Arrays.toString(as));