- Author 杨叔
- 冒泡排序算法
- int类型数组中有:3,1,6,2,5几个元素,对几个元素进行冒泡排序
大致思路如下:
原数据:
3 1 6 2 5
将3和1进行比较大小,然后调换位置。
1 3 6 2 5
将3和6进行比较大小,然后调换位置。
1 3 6 2 5
将6和2进行比较大小,然后调换位置。
1 3 2 6 5
将6和5进行比较大小,然后调换位置。
1 3 2 5 6
第一次循环完成
切记:一轮循环完成以后最右边的数一定是最大的
所以在第二次循环时我们就不用管最右边的元素了
原数据:
1 3 2 5
将3和1进行比较大小,然后调换位置。
1 3 2 5
将3和2进行比较大小,然后调换位置。
1 2 3 5
将3和5进行比较大小,然后调换位置。
1 2 3 5
第二次循环结束
原数组;
1 2 3
将1和2进行比较大小,然后调换位置。
1 2 3
将2和3进行比较大小,然后调换位置。
1 2 3
第三次循环结束
原数组;
1 2
将1和2进行比较大小,然后调换位置。
1 2
第四次循环结束
代码如下:
如有不解之处,还需各位看官好好思考琢磨
public class BubbleSort {
public static void main(String[] args) {
int[] a={3,1,6,2,5};
//开始排序
//i<4是因为总共循环了四次
for (int i=a.length-1;i>0;i--){
//下面的for循环负责每次大循环里面的小循环
//在第一次大循环里,小循环进行了4次
//在第二次大循环里,小循环进行了3次
//在第三次大循环里,小循环进行了2次
//在第四次大循环里,小循环进行了1次
for (int j=0;j<i;j++){
if (a[j] >a[j+1]){
//交换位置
//定义一个临时变量用来交换位置
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//遍历
for (int i =0;i<a.length;i++){
System.out.println(a[i]);
}
}
}