专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java冒泡排序-大白话解释(java冒泡排序的方法代码)

temp10 2024-09-25 21:29:37 java教程 9 ℃ 0 评论

1问:给定一个数组arr,如何将最大的数移动到队尾?

答:

Java冒泡排序-大白话解释(java冒泡排序的方法代码)

for (int j = 0; j + 1 < arr.length; j++) {

if (arr[j] > arr[j+1]) {

//交换arr[j] arr[j+1]

}

}

升级一下问题

2问:将最大的数移动到队尾后,除去最后一个数,将最大的数字移动到队尾

答:

for (int j = 0; j + 1 < arr.length-1; j++) {

if (arr[j] > arr[j+1]) {

//交换arr[j] arr[j+1]

}

}

可以看到,我们只需要将arr.length改为arr.length-1即可

继续问

3问:arr.length、arr.length-1、arr.length-2....的序列如何用for打印出来

答:

for (int i = arr.length; i > 0; i--) {
    System.out.println(i);
}

4问:怎么将上边两步结合起来?

//这层for循环的含义,限定(未排序)数组的范围
for (int i = arr.length; i > 0; i--) {
  	//这层for循环的含义:将一个数组中最大的数,移动到最后
    for (int j = 0; j + 1 < i; j++) {
        if (arr[j] > arr[j+1]) {
            //交换arr[j] arr[j+1]
        }
    }
}

可以看出两层for循环都是有含义的:

里层的for循环是冒泡排序的核心功能

外层for循环一步步缩小范围

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表