Java教程

java实现冒泡排序

本文主要是介绍java实现冒泡排序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基本介绍

冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移到后面,就像水底下的气泡一样往上冒
image-20220209145845298
image-20220209152826959
img

public static void bubbleSort(int[] arr){
    for(int i=0;i<arr.length-1;i++){   //冒泡次数
        
        //冒泡步骤
        for(int j=0;j<arr.length-1-i;j++){
            if(arr[j]>arr[j+1]){
                int temp=arr[j];
               	arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
}

冒泡排序的优化

如果在某一次冒泡排序过程中,没有交换元素,则说明该数组已经有序。

public static void bubbleSort(int[] arr){
    //如果在某一次冒泡排序过程中,没有交换元素,则说明该数组已经有序
    int temp=0;
    boolean flag=true;//标志是否完成排序,默认完成
    for(int i=0;i<arr.length-1;i++){  
        for(int j=0;j<arr.length-1-i;j++){
            if(arr[j]>arr[j+1]){
                flag=false;//假如在排序过程中进入过if条件判断,这说明排序还未完成
                temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
        if(flag){
            break;
        }else{
            flag=true;//重置flag!!!进行下次判断
        }
    }
}

注意:在使用中,也可以将flag放在第一层循环中,就不需要重置了,但是每循环一次将开辟一次新的栈空间。

这篇关于java实现冒泡排序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!