增强型for
int[] a={2,92,56,1,16,85};
for(int i:a){
System.out.println(i); //2 92 56 1 16 85
}
冒泡排序原理:
2,92,56,1,16,85
两两比较,拿前面一个比较后面一个,看谁的数大,谁就排到后面,如果前面一个比后面一个小不用排,继续下一个的比较并且排序,
第一趟讲解:2-56比较,2小不用排;92-56比较,92和56位置互换;92-1比较,92和1位置互换;92-16比较,92和16位置互换;92-85比较,92和85位置互换。
后面以此来类推。
趟数 | 排序后 | |||||
---|---|---|---|---|---|---|
第一趟 | 2 | 56 | 1 | 16 | 85 | 92 |
第二趟 | 2 | 1 | 16 | 56 | 85 | 92 |
第三趟 | 1 | 2 | 16 | 56 | 85 | 92 |
程序编写:
int[] a={2,92,56,1,16,85};
int temp;
for(int i=0;i<a.length-1;i++) {
//内层循环控制每一趟排序
for (int j = 0; j < a.length - i - 1; j++) {
//如果a[j]>a[i+1] 就互换他们的位置,第一趟:j=0时,temp=2,a[j]=92, a[j+1]=2
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
//把互换的打印出来
for(int n:a){
System.out.println(n); //1 2 16 56 85 92
}