冒泡排序总的来说是要根据比较相邻数的大小来造成位置替换,将给出的数字按从小到大的顺序进行排序
public static void main(String args[]) {
int[] arr={6,3,8,2,9,1};
System.out.println("排序前数组为:");
for(int num:arr){
System.out.print(num+" ");
}
for(int i=0;i<arr.length-1;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(temp);
}
}
}
System.out.println();
System.out.println("排序后的数组为:");
for(int num:arr){
System.out.print(num+" ");
}
}
第一趟排序:
第一次排序:6
和
3
比较,
6
大于
3
,交换位置:
3 6 8 2 9 1
第二次排序:6
和
8
比较,
6
小于
8
,不交换位置:
3 6 8 2 9 1
第三次排序:8
和
2
比较,
8
大于
2
,交换位置:
3 6 2 8 9 1
第四次排序:8
和
9
比较,
8
小于
9
,不交换位置:
3 6 2 8 9 1
第五次排序:9
和
1
比较:
9
大于
1
,交换位置:
3 6 2 8 1 9
第一趟总共进行了5
次比较, 排序结果:
3 6 2 8 1 9
---------------------------------------------------------------------
第二趟排序:
第一次排序:3
和
6
比较,
3
小于
6
,不交换位置:
3 6 2 8 1 9
第二次排序:6
和
2
比较,
6
大于
2
,交换位置:
3 2 6 8 1 9
第三次排序:6
和
8
比较,
6
大于
8
,不交换位置:
3 2 6 8 1 9
第四次排序:8
和
1
比较,
8
大于
1
,交换位置:
3 2 6 1 8 9
第二趟总共进行了4
次比较, 排序结果:
3 2 6 1 8 9
---------------------------------------------------------------------
第三趟排序:
第一次排序:3
和
2
比较,
3
大于
2
,交换位置:
2 3 6 1 8 9
第二次排序:3
和
6
比较,
3
小于
6
,不交换位置:
2 3 6 1 8 9
第三次排序:6
和
1
比较,
6
大于
1
,交换位置:
2 3 1 6 8 9
第二趟总共进行了3
次比较,
排序结果: 2 3 1 6 8 9
---------------------------------------------------------------------
第四趟排序:
第一次排序:2
和
3
比较,
2
小于
3
,不交换位置:
2 3 1 6 8 9
第二次排序:3
和
1
比较,
3
大于
1
,交换位置:
2 1 3 6 8 9
第二趟总共进行了2
次比较,
排序结果: 2 1 3 6 8 9
---------------------------------------------------------------------
第五趟排序:
第一次排序:2
和
1
比较,
2
大于
1
,交换位置:
1 2 3 6 8 9
第二趟总共进行了1
次比较,
排序结果: 1 2 3 6 8 9
---------------------------------------------------------------------
最终结果:1 2 3 6 8 9
由此我们可以看出他的总躺数其实便是给出的数字个数i-1 内层循环控制则是n-1-i