java冒泡排序算法

算法:冒泡排序算法
冒泡排序的运作(从后往前):
第一轮:比较每一对相邻的两个元素,如果第一个比第二个大,就进行交换,最后一个元素则是最大的元素。
第二轮:重复以上步骤,除了最后一个。
·····
第n-1轮···
相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定的排序算法。

手动分析:

数  组: 15  2  45  32  56  89   4  15  55  6 

第一轮: 2  15  32  45  56  4   15  55  6  89   比较 9 次

第二轮: 2  15  32  45  4   15  55  6  56       比较 8 次

第三轮: 2  15  32  4   15  45  6   55          比较 7 次

第四轮: 2  15  4   15  32  6   45              比较 6 次

第五轮: 2  4   15  15  6   32                  比较 5 次

第六轮: 2  4   15  6   15                      比较 4 次

第七轮: 2  4   6   15                          比较 3 次

第八轮: 2  4   6                               比较 2 次

第九轮: 2  4                                   比较 1 次   

代码说明:1、外循环控制比较的轮数,内循环控制每轮比较的次数
2、比较的次数是数组长度-1。
3、交换方法有多种,这里使用的是相加的方法(可以使用如:借助第三变量,移位法等)
4、遍历输出我使用的是forearch循环,也可以使用最普通的for循环,如下:

for(int i = 0; i < nums.length-1; i++){
    System.out.print(nums[i]+" ");
}

源代码:

public class shuzu6 {
    public static void main(String[] args) {
        int[] nums = {15,2,45,32,56,89,4,15,55,6};

        //外循环控制比较的轮数
        for (int i = 0; i < nums.length-1; i++) {

            for (int j = 0; j < nums.length-1-i; j++) {
                if(nums[j]>nums[j+1]){
                    nums[j] = nums[j] + nums[j+1];
                    nums[j+1] = nums[j] - nums[j+1];
                    nums[j] = nums[j] - nums[j+1];
                }
            }
        }
        for(int n : nums){
            System.out.print(n+" ");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值