Java:经典算法之冒泡排序(优化)

Java:经典算法之冒泡排序(优化)

1.经典冒泡

public class Test
{
    
    
    public static void main(String[] args)
    {
    
    
        int []nums = new int[]{
    
    1,5,10,20,16,12,8,4,3};
        for (int i = 0 ; i<nums.length-1 ; i++)
        {
    
    
            for(int j = 0 ; j<nums.length-1-i ; j++)
            {
    
    
                if (nums[j]>nums[j+1])
                {
    
    
                    int t = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = t;
                }
            }
        }
        for (int i : nums)
            System.out.print(i+" ");
        System.out.println();
    }
}

2.优化算法

public class Test
{
    
    
    public static void main(String[] args)
    {
    
    
        int []nums = new int[]{
    
    1,5,10,20,16,12,8,4,3};
        boolean flag = true;
        for (int i = 0 ; i<nums.length-1 ; i++)
        {
    
    
            for(int j = 0 ; j<nums.length-1-i ; j++)
            {
    
    
                if (nums[j]>nums[j+1])
                {
    
    
                    int t = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = t;
                    flag = false;
                }
            }
            if (flag)//一趟排序过后没有任何交换说明数组原本就有序
                break;
        }
        for (int i : nums)
            System.out.print(i+" ");
        System.out.println();
    }
}

有不对的地方欢迎大家提出(博客新手)。

猜你喜欢

转载自blog.csdn.net/qq_45670336/article/details/109084937