冒泡排序优化详解

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Random;
import java.util.Scanner;

public class Sort {
    
    


    public static void main(String[] args) {
    
    
        int[] b = new int[80000];
        for (int i = 0; i < b.length; i++) {
    
    
            b[i] = (int) (Math.random() * 100);

        }
        System.out.println("排序前的时间:");
        Date date=new Date( );
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat( "yyyy-mm-dd HH:mm:ss" );
        String format = simpleDateFormat.format( date );
        System.out.println( "format = " + format );


        System.out.println( date );

        //冒泡排序
        BubbleSorting( b );
        System.out.println("排序后的时间:");
        Date date1=new Date( );

        String format1 = simpleDateFormat.format( date1 );
        System.out.println( "format = " + format1 );


        System.out.println( date1);



        //把数组转化为字符串并输出
//        System.out.println( Arrays.toString( b ) );

    }

    private static void BubbleSorting(int[] arr) {
    
    
        /*  int arr[]={1,2,3,4,5};*/
        int tmp = 0;//临时变量
        boolean flag = false;

        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 = true;
                    tmp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = tmp;

                }
            }
               /*  System.out.println( "第"+(i+1)+"次排序后的数组:" );
                 System.out.println( Arrays.toString( arr ) );*/

            if (!flag) {
    
    
                break;

            } else {
    
    
                flag = false;

            }

        }
    }


}

猜你喜欢

转载自blog.csdn.net/houzhicongone/article/details/113699859
今日推荐