老师帮我看看,这样不是更简洁吗?

来源: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

循环结束:排序失败

0

0 学习 · 11489 问题

查看课程