冒泡排序(第2版)

    xiaoxiao2025-04-09  28

    优化内容:在大循环和小循环之间增加布尔变量isSort,来判断数组是否有序,如果有序,立即终止外层循环,之后的回合不必再继续下去,做无用功。

    package chapter4.part1; import java.util.Arrays; import org.junit.Test; public class BubbleSort2 { @Test public void testBS1() { int[] array = new int[] {5, 8, 6, 3, 9, 2, 1, 7}; System.out.println("数组排序前: " + Arrays.toString(array)); int leng = array.length; for(int i=0; i<leng-1; i++) {//控制回合 boolean isSort = true; for(int j=0; j<leng-i-1; j++) { int temp = 0;//temp放在哪里初始化都行,因为temp不参与值大小比较 if(array[j]>array[j+1]) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; isSort = false;//发生过交换,说明之前无序 } } if(isSort) {//数组已有序,立即终止循环,之后的回合没必要继续下去 break; } } System.out.println("数组排序后: " +Arrays.toString(array)); } }

    最新回复(0)