0
点赞
收藏
分享

微信扫一扫

对冒泡排序的优化

Yaphets_巍 2022-01-06 阅读 68

由于在冒泡排序的过程中,会存在一种情况:数组在最后一次排序前已经有序,但冒泡循环依然会一直执行后续的排序
未优化前的算法

package Day06;

import java.lang.reflect.Array;
import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int[] array = new int[10];
        int temp;
        for(int i = 0;i < array.length;i++){
            //为array赋值随机数
            array[i] = (int)(Math.random()*100);
        }
        System.out.println("生成的随机数组是:"+ Arrays.toString(array));

        //冒泡循环
        for(int i = 0;i < array.length - 1;i++){
            //flag = true;
            for (int j = 0; j < array.length - 1 - i;j++){
                if (array[j] > array[j + 1]) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }

            }
            System.out.println("当前的排序位置顺序为:"+Arrays.toString(array));


    }

}

结果截图:
在这里插入图片描述

优化后的算法:


```java
package Day06;

import java.lang.reflect.Array;
import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        //对冒泡排序的优化
        int[] array = new int[10];
        //设置一个标志位
        boolean flag = true;
        int temp;
        for(int i = 0;i < array.length;i++){
            //为array赋值随机数
            array[i] = (int)(Math.random()*100);
        }
        System.out.println("生成的随机数组是:"+ Arrays.toString(array));

        //冒泡循环
        for(int i = 0;i < array.length - 1;i++){
            flag = true;
            for (int j = 0; j < array.length - 1 - i;j++){
                if (array[j] > array[j + 1]) {
                    temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                    flag = false;
                }

            }
            if(flag == true)
                break;
            else
                System.out.println("当前的排序位置顺序为:"+Arrays.toString(array));
        }
        System.out.println("排序后的数组是:"+ Arrays.toString(array));

    }

}




结果截图:在这里插入图片描述
发现可以很大程度的减少排序的次数

举报

相关推荐

0 条评论