老师帮我看看,这样不是更简洁吗?
来源:4-1 冒泡排序
乜嘢吖
2019-04-08 22:04:46
package com.Imooc;
public class ShiLi {
public static void main(String[] args) {
int[] a = { 5, 3, 7, 6, 10 };
int temp;
for (int n : a) {
System.out.print(n + " ");
}
for (int i = 0; i < a.length - 1; i++) {
if (a[i] > a[i + 1]) {
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
System.out.println();
for (int n : a) {
System.out.print(n + " ");
}
}
}1回答
易表非凡
2019-04-09
这位同学你好,下面为你解说一下你的排序法原理:
你的排序法只能对相邻的两个数比较再排序,会出现排序失败的情况。
(在最后面为你列举了你的代码排序失败的情况,务必采纳)
而冒泡排序法每次比较的时候,会对所有可能比它小或比它大的数比较再排序。
所有虽然效率慢,但是非常准确,不会出现排序出错。
(冒泡排序法具体代码见课程资料)
排序成功的情况:
排序的数字:5, 3, 7, 6, 10
排序的条件:a[i] < a[i + 1]
第一次排序:5 和 3 数组内容:3, 5, 7, 6, 10
第二次排序:5 和 7 不排序
第三次排序:7 和 6 数组内容:3, 5, 6, 7, 10
第四次排序:7 和 10 不排序
循环结束:排序成功
排序成功的情况:
排序的数字:10, 5, 7, 6, 3
排序的条件:a[i] < a[i + 1]
第一次排序:10 和 5 数组内容:5, 10, 7, 6, 3
第二次排序:10 和 7 数组内容:5, 7, 10, 6, 3
第三次排序:10 和 6 数组内容:5, 7, 6, 10, 3
第四次排序:10 和 3 数组内容:5, 7, 6, 3, 10
循环结束:排序失败
相似问题